Я знаю, это старый поток, и на него уже ответили, но ответы - это оптимизация. Фактическая причина , почему вы получаете повторяющиеся ответы, заключается в том, что каждый раз, когда вы запрашиваете .iterator (), он возвращает обратно объект итератора, который начинается с верхней части списка.
Поэтому условие while while:
list.iterator().hasNext()
всегда будет возвращать true. Соответственно, последующий
list.iterator().next()
всегда будет возвращать первый элемент.
Что должно быть сделано:
AggregationOutput output = coll.aggregate( match1, unwind, match2, group, sort, limit);
Iterable<DBObject> list= output.results();
Iterator<DBObject> iterator= list.iterator();
while(iterator.hasNext()){
DBObject obj = iterator.next();
String id = (String) obj.get("_id");
int times = Integer.parseInt(obj.get("times").toString());
System.out.println("ID IS "+id+" time: "+times);
}
Но технически, для цикла, упомянутого @Aqua, много более чистого использования. Этот ответ заключался лишь в том, чтобы разъяснить, почему, а не как.
Я бы сказал, что сначала сделайте версию для ПК (переносимую на Mac, Linux, Windows, если это для вас приоритетно) и разработайте (или даже несколько) полностью новую версию для мобильных телефонов. .
Там может быть какой-то код (и художественное произведение), которое вы можете использовать повторно, но не слишком много, так как (хорошая) игра должна сильно отличаться для мобильного телефона от ПК, а не только по размеру экрана. и методы ввода, но основные изменения в игровом процессе, к которым, вероятно, приводят эти различия, чтобы по-прежнему было интересно играть.
Код, который вы можете использовать повторно, скорее всего, потребуется адаптировать для J2ME или Android, но лучше побеспокоиться об этом позже, чем пытаться быть чрезмерно кроссплатформенным с самого начала (что наложило бы ограничения на функциональность версии для ПК, и съедает много времени, не будучи уверенным, окупится ли это когда-нибудь).
Опять же, во всяком случае, беспокойтесь о переносимости в нескольких средах рабочего стола и в нескольких телефонах, но не слишком много о переносимости между ними.
Конечно, если ваша игра имеет серверный компонент, было бы идеально иметь только одну версию серверного кода, которая может взаимодействовать с клиентами на всех платформах.