Java8中新增加的集合类
来源:互联网 发布:剑3萝莉捏脸数据下载 编辑:程序博客网 时间:2024/05/21 12:45
Java8中新增加的集合类
分类:
前言
在平常的开发中,有时我们需要存放多个数据,因此也就有了集合的存在,这篇博客着重讲解一下java8给我们带来的一些类关于Collection的操作。
Collection接口
在java8中新增加了一个forEach方法,可以使用Lambda表达式来遍历集合元素
2.使用Lambda遍历Iterator
3.java8中增加的Predicate操作集合
在平常的开发中,有时我们需要存放多个数据,因此也就有了集合的存在,这篇博客着重讲解一下java8给我们带来的一些类关于Collection的操作。
Collection接口
正如上图所示,Collection接口位于最底层接口,为所有的集合操作提供了一些公共的方法。比如add、addAll、clear、contains、toArray等方法
- /**
- * @FileName: CollectionTest.java
- * @Package:com.collection
- * @Description: TODO
- * @author: LUCKY
- * @date:2015年12月2日 上午11:32:48
- * @version V1.0
- */
- package com.collection;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.HashSet;
- /**
- * @ClassName: CollectionTest
- * @Description: TODO
- * @author: LUCKY
- * @date:2015年12月2日 上午11:32:48
- */
- public class CollectionTest {
- public static void main(String[] args) {
- Collection c=new ArrayList();
- //添加元素
- c.add("孙悟空");
- //虽然集合里不能放置基本类型的值,但java支持自动装箱操作
- c.add(6);
- System.out.println("集合中的元素个数为"+c.size());
- //删除指定的元素
- c.remove(6);
- System.out.println("集合中是否包含\"孙悟空\"字符串"+c.contains("孙悟空"));
- Collection books=new HashSet();
- books.add("轻量级java EE企业应用实战");
- books.add("疯狂java讲义");
- System.out.println("c集合是否完全包含books集合"+c.containsAll(books));
- //删除c集合中的所有元素
- c.clear();
- //控制books集合里只剩下c集合里也包含的元素
- books.retainAll(c);
- System.out.println("books集合的元素"+books);
- }
- }
那么在java8中为我们增加了那些好的遍历集合的操作?
在java8中新增加了一个forEach方法,可以使用Lambda表达式来遍历集合元素
- <span style="font-family:Comic Sans MS;font-size:18px;">
- /**
- * @FileName: CollectionEach.java
- * @Package:com.collection
- * @Description: TODO
- * @author: LUCKY
- * @date:2015年12月2日 上午11:40:20
- * @version V1.0
- */
- package com.collection;
- import java.util.Collection;
- import java.util.HashSet;
- import java.util.function.Consumer;
- /**
- * @ClassName: CollectionEach
- * @Description: TODO
- * @author: LUCKY
- * @date:2015年12月2日 上午11:40:20
- */
- public class CollectionEach {
- public static void main(String[] args) {
- //创建一个集合
- Collection books=new HashSet();
- books.add("轻量级java EE 企业应用实战");
- books.add("疯狂java讲义");
- books.add("疯狂android讲义");
- //调用foreach方法循环遍历集合
- books.forEach(obj->System.out.println("迭代元素:"+obj));
- }
- }
- </span>
2.使用Lambda遍历Iterator
java8中为Iterator增加了一个forEachRemaining方法,,也可以使用Lambda来遍历
- <span style="font-family:Comic Sans MS;font-size:18px;">/**
- * @FileName: IteratorEach.java
- * @Package:com.collection
- * @Description: TODO
- * @author: LUCKY
- * @date:2015年12月2日 下午12:01:20
- * @version V1.0
- */
- package com.collection;
- import java.util.Collection;
- import java.util.HashSet;
- import java.util.Iterator;
- /**
- * @ClassName: IteratorEach
- * @Description: TODO
- * @author: LUCKY
- * @date:2015年12月2日 下午12:01:20
- */
- public class IteratorEach {
- public static void main(String[] args) {
- Collection books=new HashSet();
- books.add("轻量级java EE 企业应用实战");
- books.add("疯狂java讲义");
- books.add("疯狂android讲义");
- //获取books集合对应的迭代器
- Iterator it=books.iterator();
- //使用lambda表达式(目标类型是Comsumer)来遍历集合元素
- it.forEachRemaining(obj ->System.out.println("输出的结果是"+obj));
- }
- }
- </span>
3.java8中增加的Predicate操作集合
在java8中为Collection集合增加了一个removeIF方法,也可以用来操作lambda
- <span style="font-family:Comic Sans MS;font-size:18px;">
- package com.collection;
- import java.util.*;
- import java.util.function.*;
- public class PredicateTest2
- {
- public static void main(String[] args)
- {
- // 创建books集合、为books集合添加元素的代码与前一个程序相同。
- Collection books = new HashSet();
- books.add(new String("轻量级Java EE企业应用实战"));
- books.add(new String("疯狂Java讲义"));
- books.add(new String("疯狂iOS讲义"));
- books.add(new String("疯狂Ajax讲义"));
- books.add(new String("疯狂Android讲义"));
- // 统计书名包含“疯狂”子串的图书数量
- System.out.println(calAll(books, obj->((String)obj).contains("疯狂")));
- System.out.println(calAll(books , ele->((String)ele).contains("疯狂")));
- // 统计书名包含“Java”子串的图书数量
- System.out.println(calAll(books , ele->((String)ele).contains("Java")));
- // 统计书名字符串长度大于10的图书数量
- System.out.println(calAll(books , ele->((String)ele).length() > 10));
- }
- public static int calAll(Collection books , Predicate p)
0 0
- Java8中新增加的集合类
- Java8中新增加的集合类
- Java8中新增加的集合类
- java8新增加特性
- 使用Java8新增的Predicate操作集合
- java8函数式编程之三:集合中新增的方法:forEach
- Java8新增的Map集合以及各Map的实现
- css中新增加的伪类选择器
- java8中新增的time类的常用类的基本用法
- java集合(包括java8新增知识)
- unity 5.3 中新增加的 Attribute
- java8 新增的@Repeatable注解
- Java8新增的Lambda表达式
- java8接口的新增功能
- java8 新增的@Repeatable注解
- Java8新增的Lambda表达式
- Java8 集合的遍历
- Android中使用Java8 新增语言功能
- Markdown书写代码
- textview显示更多的
- Java读取文件目录和文件,并且按照文件层次输出文件名和目录名。
- struts中的验证框架的使用
- KMP算法
- Java8中新增加的集合类
- android AlertDialog的做法
- 工厂方法模式实现四则运算 C++
- java截取字符串 截串 substring
- SSL加密包解析的几个概念梳理
- HDU2653 Waiting ten thousand years for Love (三维广搜+优先队列)
- C#课后练习题(一)
- tomcat架构分析(valve源码导读)
- MD5 算法步骤详解