У меня есть 4 коллекции, каждая из которых содержит время, сохраненное в определенные моменты времени. Я бы сказал, что мой мой вопрос довольно общий, поэтому содержание коллекций не имеет значения. Мне было интересно, как я мог бы объединить эти коллекции в одно и то же время, получить размер и вернуть самую длинную коллекцию. Имеет ли это смысл?цикл через несколько коллекций в java-коде
ответ
Зачем вам перебирать коллекцию, чтобы узнать ее размер? Коллекция имеет size()
метод
он говорит «в то же время» что-то ... '4 собрания' ... – pinkpanther
Возможно, он хочет перебирать коллекцию коллекций;) –
Если у вас есть коллекции, которые реализуют интерфейс Collection, вы можете просто использовать
Collection.size();
обеспечить длину коллекции.
Затем вы можете сравнить результаты звонков по размеру(), чтобы найти самую длинную коллекцию.
Вам не нужно перебирать все предметы в коллекции.
Существуют различные способы:
- Вы могли бы объединение ваших коллекций в один с помощью CollectionUtils из Apache Commons, например
- Вы можете поместить свои коллекции в другую коллекцию/список. Коллекция реализует Iterator, поэтому вы можете просто перебирать их.
- Вы можете рекурсивно вызывать метод, заданный в коллекции.
Я думаю, вы должны пойти со вторым подходом и сохранить размер в переменной и заменить его, если новая коллекция больше.
int size = -1;
for (Collection col : allCollections) {
if (col.size() > size) size = col.size();
}
Вот ПРИМЕР-
List<Integer> l1=new ArrayList<Integer>();
List<Integer> l2=new ArrayList<Integer>();
List<Integer> l3=new ArrayList<Integer>();
List<Integer> l4=new ArrayList<Integer>();
l1.add(1);l1.add(1);
l2.add(2);l2.add(2);l2.add(2);
l3.add(3);l3.add(3);l3.add(3);l3.add(3);
l4.add(4);l4.add(4);l4.add(4);
System.out.println("L1 size "+l1.size());
System.out.println("L2 size "+l2.size());
System.out.println("L3 size "+l3.size());
System.out.println("L4 size "+l4.size());
String array="l1";
int i=l1.size();
if(i<l2.size())
array="l2";
if(i<l3.size())
array="l3";
if(i<l4.size())
array="l4";
System.out.println("Largest Array is = "+array);
Вот выход
L1 size 2
L2 size 3
L3 size 4
L4 size 3
Largest Array is = l4
Это то, что у хочу?
- 1. повторять несколько параллельных коллекций
- 2. Итерация через несколько коллекций в python
- 3. цикл через несколько записей
- 4. Цикл через несколько дат
- 5. цикл через несколько векторов
- 6. Mongo Bulk Вставка через несколько коллекций
- 7. Цикл выпуска программных коллекций?
- 8. Несколько коллекций в AngularFire?
- 9. Несколько коллекций в Shopify
- 10. Excel, цикл через несколько caculations
- 11. MongoDB обновить несколько коллекций
- 12. Python цикл через несколько списков
- 13. tcl цикл через несколько списков
- 14. цикл через несколько массивов в php
- 15. R цикл через несколько данных в списке
- 16. как цикл через несколько флажков в C#
- 17. Итерации через несколько коллекций в том же цикле «для»?
- 18. рельсы rabl несколько коллекций
- 19. Несколько коллекций пользователей
- 20. POST несколько коллекций
- 21. Laravel Сравнить несколько коллекций?
- 22. Несколько встроенных коллекций
- 23. Подписывать несколько коллекций с условным &&
- 24. . Цикл Foreach проходит через несколько элементов.
- 25. jQuery цикл через несколько элементов на странице
- 26. Python: цикл через несколько файлов csv
- 27. Цикл через запятую, разделенную на несколько массивов?
- 28. PHP цикл через несколько таблиц базы данных
- 29. Как сделать несколько окон через цикл?
- 30. JQuery: как цикл через несколько элементов, выбранных
Пожалуйста, покажите нам, что вы пробовали –
Нет, это не имеет смысла. Можете ли вы дать примеры ввода, ожидаемые результаты и то, что вы пробовали до сих пор? – fge
Было бы неплохо сослаться на документацию Java на классы, которые вы используете. –