`

Java8之集合(Collection)遍历 forEach()、stream()

阅读更多
package java8.collections;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;

import org.junit.Before;
import org.junit.Test;

public class ForEach {
    
    private List<String> list = new ArrayList<>();
 
    @Before
    public void initData() {
        list.add("Java 1.5");
        list.add("Java 1.6");
        list.add("Scala");
        list.add("Python");
        list.add("Html");
        list.add("css");
        list.add("JavaScript");
        list.add("js");
        list.add("Hadoop");
        list.add("C");
        list.add("redis");
        list.add("Java 1.7");
        list.add("Java 1.8");
 
    }
 
    /**
     * 在Java8之前的遍历方式
     */
    @Test
    public void testErgodicWayBeforeJava8() {
        System.out.println("\nBefore JAVA8 ===================================>");
        System.out.println(">>>> for loop:");
        for (int i = 0; i < list.size(); i++) {
            System.out.println("list.get(i) = " + list.get(i));
        }
        System.out.println(">>>> for loop enhanced:");
        for (String ele : list) {
            System.out.println("ele = " + ele);
        }
        System.out.println(">>>> iterator:");
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()){
            System.out.println("iterator.next() = " + iterator.next());
        }
    }
 
    /**
     * 在Java8中的遍历方式
     */
    @Test
    public void testCollection_forEach_Java8() {
        System.out.println("\nJAVA8:::Collection.forEach ======================>");
        list.forEach(System.out::println);
    }
    
    @Test
    public void testCollection_stream_map_Java8() {
        System.out.println("\nJAVA8:::Collection.stream.map ==================>");
        list.stream()
            .map(item -> "Mapped_Value_" + item)
            .collect(Collectors.toList()).stream()
            .forEach(System.out::println);
    }
    
    @Test
    public void testCollection_stream_filter_map_Java8() {
        System.out.println("\nJAVA8:::Collection.stream.filter.map ==========>");
        list.stream()
            .filter(item -> item.contains("Java"))
            .map(item -> "Mapped_Value_" + item)
            .collect(Collectors.toList()).stream()
            .forEach(System.out::println);
    }
    
}



输出结果:


Before JAVA8 ===================================>
>>>> for loop:
list.get(i) = Java 1.5
list.get(i) = Java 1.6
list.get(i) = Scala
list.get(i) = Python
list.get(i) = Html
list.get(i) = css
list.get(i) = JavaScript
list.get(i) = js
list.get(i) = Hadoop
list.get(i) = C
list.get(i) = redis
list.get(i) = Java 1.7
list.get(i) = Java 1.8
>>>> for loop enhanced:
ele = Java 1.5
ele = Java 1.6
ele = Scala
ele = Python
ele = Html
ele = css
ele = JavaScript
ele = js
ele = Hadoop
ele = C
ele = redis
ele = Java 1.7
ele = Java 1.8
>>>> iterator:
iterator.next() = Java 1.5
iterator.next() = Java 1.6
iterator.next() = Scala
iterator.next() = Python
iterator.next() = Html
iterator.next() = css
iterator.next() = JavaScript
iterator.next() = js
iterator.next() = Hadoop
iterator.next() = C
iterator.next() = redis
iterator.next() = Java 1.7
iterator.next() = Java 1.8

JAVA8:::Collection.forEach ======================>
Java 1.5
Java 1.6
Scala
Python
Html
css
JavaScript
js
Hadoop
C
redis
Java 1.7
Java 1.8

JAVA8:::Collection.stream.map ==================>
Mapped_Value_Java 1.5
Mapped_Value_Java 1.6
Mapped_Value_Scala
Mapped_Value_Python
Mapped_Value_Html
Mapped_Value_css
Mapped_Value_JavaScript
Mapped_Value_js
Mapped_Value_Hadoop
Mapped_Value_C
Mapped_Value_redis
Mapped_Value_Java 1.7
Mapped_Value_Java 1.8

JAVA8:::Collection.stream.filter.map ==========>
Mapped_Value_Java 1.5
Mapped_Value_Java 1.6
Mapped_Value_JavaScript
Mapped_Value_Java 1.7
Mapped_Value_Java 1.8



















=
分享到:
评论

相关推荐

    java中关于集合的操作

    - Java 8的流API遍历:`collection.stream().forEach(action);` 9. **集合与数组的区别**: 数组长度固定,而集合的大小可变;数组支持下标访问,集合则通过迭代器访问。 10. **集合的最佳实践**: - 根据需求...

    Stream_Java8.pdf

    Stream API作为Java 8的重要特性之一,极大地简化了集合处理的代码编写过程,提升了程序的可读性和效率。 ### Stream概述 Java 8引入的Stream API提供了一种更加高效且易于理解的方式来处理集合中的数据。它可以被...

    java Map遍历方法

    自Java 8起,`Map`接口引入了`forEach`方法,使用Lambda表达式或方法引用来遍历键值对。 ```java map.forEach((key, value) -&gt; System.out.println("Key: " + key + ", Value: " + value)); ``` 5. **流(Stream...

    Java集合框架培训资料

    8. **流(Stream)API**:从Java 8开始,引入了流API,它提供了函数式编程风格处理集合的新方式,如过滤、映射和收集操作。 9. **比较器与排序**:集合框架中的`Comparator`接口用于自定义比较逻辑,`Collections....

    Java 实例 - 集合长度源代码-详细教程.zip

    4. **遍历集合**:Java提供了多种遍历集合的方式,包括迭代器(`Iterator`)、增强型for循环(foreach)以及使用索引。例如,`Iterator迭代器 = collection.iterator();`,然后通过`iterator.hasNext()`和`iterator....

    java中的集合笔记.rar

    Java中的集合框架是Java编程语言的核心组成部分之一,它为存储、管理和操作对象提供了一组统一的接口和类。集合框架主要包括List、Set、Queue和Map四大接口,以及一系列实现这些接口的类,如ArrayList、LinkedList、...

    java8_api.zip

    在集合框架方面,Java 8增加了默认方法到接口中,如`java.util.Collection`和`java.util.List`。这些默认方法提供了如`forEach`、`stream`、`parallelStream`等实用操作,让开发者可以更方便地遍历和操作集合。另外...

    Collection_java_

    11. **集合的遍历策略**:除了迭代器,还可以使用增强的for循环(foreach)进行遍历,如`for (Type element : collection) {...}`。 12. **集合容量与扩容**:集合类在创建时可以指定初始容量,如ArrayList的构造器...

    JAVA集合例子

    8. **集合转换**:集合之间可以通过`addAll()`方法进行合并,`Collections.sort()`用于对List排序,`Arrays.asList()`将数组转换为List,`stream()`方法则引入了Java 8的流式处理。 9. **并发编程**:在多线程环境...

    尚硅谷Java8练习Java源码

    Java 8是Java编程语言的一个重要版本,...这份源码集合涵盖了上述所有知识点,是学习和巩固Java 8知识的宝贵资源。通过详细研究和实践,开发者能够更好地适应和利用Java 8的新特性,提高开发效率,写出更加优雅的代码。

    JAVA集合框架

    Java 5引入的增强for循环(foreach)提供了简洁的遍历集合元素的方式,如`for (Type element : collection) {...}`。 6. **比较器与排序** 在Java集合框架中,Comparator接口用于自定义元素的比较逻辑,如在...

    6.集合collection1

    - `foreach`:遍历集合并应用给定的函数。 - `++`:连接两个集合,创建一个新的集合。 此外,还有许多其他操作,如`map`、`filter`、`reduce`等,这些都是集合处理的基本工具,为Scala程序员提供了强大而简洁的工具...

    30个Java经典的集合面试题!.zip

    - Java 8引入的新特性,提供了一种新的集合操作方式,支持函数式编程。 以上只是部分可能涵盖的面试知识点,具体30个题目可能还会涉及其他细节,如并发控制、性能优化、集合的特性和使用场景等。深入理解这些概念...

    java集合框架PPT

    13. **流(Stream)API**:Java 8引入的新特性,允许以声明式方式处理集合数据,提供了并行处理的能力。 14. **集合工厂方法**:`Collections.emptyList()`, `Collections.singletonList()`, `Collections.emptyMap...

    java集合总结副本共19页.pdf.zip

    9. **Collection与Iterable**:Collection是所有单值集合的父接口,而Iterable是所有可以迭代的对象的接口,Collection继承了Iterable,使得所有集合都能用foreach进行遍历。 10. **优先队列(PriorityQueue)**:...

    Java Collection 移除元素方法及注意事项

    Java 8 提供了新的集合操作 API 和 Stream 来帮助我们解决这个问题。 5.1 Collection.removeIf() 新的 Collection Api removeIf(Predicate&lt;? super E&gt; filter) 提供了一种更简洁的使用 Predicate 断言删除元素的...

    Java8 Stream API 详细使用方法与操作技巧指南

    2. 从集合创建流:使用 `Collection.stream()` 方法将集合转换为 Stream。 3. 从数组创建流:使用 `Arrays.stream()` 方法将数组转换为 Stream。 4. 通过构造器创建流:使用 `Stream.builder()` 方法创建一个 Stream...

    java8使用Stream API方法总结

    Java 8 中引入的 Stream API 是处理集合的关键抽象概念,可以指定对集合进行的操作,执行非常复杂的查找、过滤和映射数据等操作。使用 Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。 创建 ...

    java8新特性

    Stream API 是 Java 8 中的一个强大特性,用于处理集合数据。它提供了一种声明式编程风格,支持序列化操作,如过滤、映射和归约。例如,以下代码使用 Stream API 计算列表中所有数字的总和: ```java List...

    遍历map

    可以使用`map.entrySet().stream()`创建一个流,然后通过`forEach`进行遍历。代码示例: ```java map.entrySet().stream() .forEach(entry -&gt; System.out.println("Key: " + entry.getKey() + ", Value: " + ...

Global site tag (gtag.js) - Google Analytics