Вы можете сохранить упорядоченный список, ну, в порядке, чтобы получить элементы из вашего основного списка:
List<Foo> items = new ArrayList<Foo>();
// add stuff to items (say, 6 things)
Map<String,List<Integer>> userOrders = new HashMap<String,List<Integer>>();
userOrders.put("A", Arrays.asList(0,1,2,3,4,5)); // add user A's order
userOrders.put("B", Arrays.asList(5,4,3,2,1,0)); // add user B's order
// display for userA:
for(Integer i : userOrders.get("A")){
show(items.get(i)); // show the userA's i-th item
}
Здесь я также использую Map
для удержания ордеров. В зависимости от вашего приложения вы можете использовать какую-то другую схему для получения пользовательского заказа, но принцип всегда будет таким же: если пользователь может иметь пользовательский заказ, вы должны сохранить этот заказ где-нибудь, а затем переберите список вещей, основанный на этом порядке (как показано выше).
Также позаботьтесь о типе List
, который вы используете, вызов get
для произвольного доступа на LinkedList
значительно дороже, чем на ArrayList
.