Don't you have a class that holds your item + aisle information? Something like:
public class Item {
private String name;
private int aisle;
// constructor + getters + setters
}
If you don't, consider making one - it's definitely a better approach than trying to stick those attributes into ArrayList within another ArrayList. Once you do have said class, you'll either need to write a Comparator for your objects or make 'Item' Comparable by itself:
public class Item implements Comparable<Item> {
.. same stuff as above...
public int compareTo(Item other) {
return this.getAisle() - other.getAisle();
}
}
Then all you do is invoke sort:
List<Item> items = new ArrayList<Item>();
... populate the list ...
Collections.sort(items);