集合遍历

集合遍历

传统的for循环遍历,基于计数器的:

​ 遍历者自己在集合外部维护一个计数器,然后依次读取每一个位置的元素,当读取到最后一个元素后,停止。主要就是需要按元素的位置来读取元素。这也是最原始的集合遍历方法。

for (int i = 0; i < list.size(); i++) {
    list.get(i);
}

迭代器遍历,Iterator:

​ Iterator本来是OO的一个设计模式,主要目的就是屏蔽不同数据集合的特点,统一遍历集合的接口。Java作为一个OO语言,自然也在Collections中支持了Iterator模式。

写法为:

Iterator iterator = list.iterator();
while (iterator.hasNext()) {
    iterator.next();
}

for each循环遍历:

​ 屏蔽了显式声明的Iterator和计数器。

​ 优点:代码简洁,不易出错。

​ 缺点:只能做简单的遍历,不能在遍历过程中操作(删除、替换)数据集合。

写法为:

for (ElementType element : list) {
}

Stream流处理

创建 Stream:

  • 从集合创建:List<String> list = Arrays.asList("a", "b", "c"); Stream<String> stream = list.stream();
  • 从数组创建:int[] numbers = {1, 2, 3, 4}; IntStream stream = Arrays.stream(numbers);
  • 从值创建:Stream.of("a", "b", "c")

使用示例:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
long sum = numbers.stream()  // 创建流
                   .filter(n -> n % 2 == 0)  // 过滤出偶数
                   .mapToInt(Integer::intValue)  // 转换为int流
                   .sum();  // 求和
posted @ 2024-08-06 11:10  wen-210162704027  阅读(2)  评论(0编辑  收藏  举报