|
Існує три способи пройти Список
<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 є впорядкованою колекцією , внутрішній не є заблокованим, це найвища ефективність, але при записі багатопотокності слід враховувати проблему паралельних операцій! Перехід по колекції Set відбувається так само, як і List, але ви не можете використовувати цикл For для ітерації колекції Set, оскільки в колекції Set немає методу 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); }
|