|
Существует три способа пройти по Списку
<A> List list = новый <A>ArrayList(); list.add(новая A()); list.add(новая A()); ...
Первый тип: for(итератор<A> it = list.iterator(); it.hasNext(); ) { .... } Такой путь — цикл В то же время, если вы хотите удалить элемент в процессе удовольствия, вы можете вызвать только метод it.delete, нельзя использовать метод list.delete, иначе возникнет ошибка параллельного доступа. Но совместимость лучшая, подходит для коллекции Коллекции
Второй тип: for(a a : list) { ..... } Для каждого метода всё ещё есть итератор, первый вызывается внутри, суп не меняется, и у этого кругового метода есть другие ограничения, поэтому его не рекомендуется использовать Его можно использовать только выше JK1.5 при плохой совместимости. Лучше всего использовать этот набор
Третий тип: for(int i=0; i<list.size(); i++) { a a = list.get(i); ... } для цикла, прохождение содержимого коллекции List работает только для List, поскольку List является упорядоченной коллекцией , внутренний не заблокирован — это самая высокая эффективность, но при написании многопоточности следует учитывать проблему параллельных операций! Прохождение по коллекции множества происходит так же, как и по списку, но нельзя использовать цикл for для прохождения коллекции множества, потому что в коллекции нет метода get() в коллекции. Но её можно зациклить с помощью улучшений Пересечь коллекцию Set <String> Set set = новый HashSet<String>(); set.add("qqq"); set.add("www"); set.add("eee"); set.add("rrr");
for(String s : set){ System.out.println("set="+s); }
|