在Java编程中,Collection
是用于存储和操作对象组的核心接口之一,当需要存储一组字符串并遍历时,可以通过List
或Set
接口的实现类(如ArrayList
、LinkedList
或HashSet
等)来完成,以下是详细实现步骤及代码示例,帮助开发者快速掌握相关操作。
ArrayList
(动态数组)
特点:基于数组实现,支持快速随机访问,适合频繁查询的场景。
import java.util.ArrayList; import java.util.List; List<String> list = new ArrayList<>(); list.add("Java"); list.add("Python"); list.add("C++");
LinkedList
(链表)
特点:基于双向链表实现,插入和删除效率高,适合频繁增删的场景。
import java.util.LinkedList; import java.util.List; List<String> list = new LinkedList<>(); list.add("Apple"); list.add("Banana"); list.add("Orange");
HashSet
(无序集合)
特点:基于哈希表实现,元素唯一且无序,适合去重场景。
import java.util.HashSet; import java.util.Set; Set<String> set = new HashSet<>(); set.add("北京"); set.add("上海"); set.add("广州");
通过索引逐个访问元素。
for (int i = 0; i < list.size(); i++) { String element = list.get(i); System.out.println(element); }
适用于所有Collection
实现类,统一通过hasNext()
和next()
遍历。
import java.util.Iterator; Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String element = iterator.next(); System.out.println(element); }
语法简洁,适用于所有实现了Iterable
接口的集合。
for (String element : list) { System.out.println(element); }
通过函数式编程实现遍历,支持链式操作和并行处理。
list.stream().forEach(element -> System.out.println(element)); // 或简化为方法引用 list.forEach(System.out::println);
ArrayList
+ 普通for循环(例如根据下标修改元素)。 HashSet
+ 迭代器或增强for循环。 ArrayList
+ 增强for循环或Stream API(代码简洁,效率接近底层优化)。ArrayList
、LinkedList
和HashSet
均为非线程安全类,若涉及多线程操作,需使用Collections.synchronizedList()
包装或改用并发集合(如CopyOnWriteArrayList
)。 Iterator
遍历时,需通过iterator.remove()
删除元素,直接调用集合的remove()
方法可能导致ConcurrentModificationException
。 LinkedList
时避免用普通for循环(时间复杂度为O(n²)),优先选择迭代器或增强for循环(时间复杂度O(n))。import java.util.*; public class CollectionExample { public static void main(String[] args) { // 存储字符串 List<String> arrayList = new ArrayList<>(); arrayList.add("Hello"); arrayList.add("World"); Set<String> hashSet = new HashSet<>(); hashSet.add("Java"); hashSet.add("Python"); // 遍历ArrayList System.out.println("ArrayList遍历结果:"); arrayList.forEach(System.out::println); // 遍历HashSet System.out.println("HashSet遍历结果:"); for (String s : hashSet) { System.out.println(s); } } }
本文代码基于Java 11语法,集合类的设计遵循Java Collections Framework规范,相关方法可参考Oracle官方文档。