java集合(包括java8新增知识)
来源:互联网 发布:seo每日一贴 编辑:程序博客网 时间:2024/06/03 06:52
<span style="font-family:Times New Roman;font-size:18px;">import java.util.*;import java.util.function.Consumer;import java.util.function.IntConsumer;import java.util.function.Predicate;import java.util.function.ToIntFunction;public class CollectionEach {@SuppressWarnings("unchecked")public static void main(String[] args){// 创建集合、添加元素的代码与前一个程序相同Collection c=new ArrayList();//添加元素c.add("语文");c.add("数学");c.add("外语");c.add("地理");//输出集合c的大小System.out.println(c.size());c.remove("语文");System.out.println(c.size());//判断集合c中是否包含“数学”System.out.println(c.contains("数学"));//输出集合c中的元素System.out.println(c);Collection books=new HashSet();books.add("语文");books.add("数学");books.add("生物");books.add("化学");//判断集合books是否包含集合cSystem.out.println(books.containsAll(c));//减去集合books中的元素c.removeAll(books);System.out.println(c);//添加集合books中的元素System.out.println("books集合中的元素:"+books);System.out.println(c);c.clear();c.add("数学");c.add("生物");c.add("化学");System.out.println("集合c中的元素:"+c);books.add("计算机");System.out.println("books集合中的元素:"+books);//控制集合books集合里只剩下c集合里也包含的元素,就是求两个集合的交集books.retainAll(c);System.out.println("集合c中的元素:"+books);//使用Lambda表达式遍历集合/*books.forEach(new Consumer() { public void accept(Object element) { System.out.println(element); }});*///使用java8增强的lterator遍历集合元素Collection names=new ArrayList();names.add("Mary");names.add("John");names.add("Tom");Iterator it=names.iterator();while(it.hasNext()){//it.hasNext()返回的数据类型是Object,因此需要强制类型转换String name=(String)it.next();System.out.print(name+" ");if(name.equals("Mary")){//从集合中删除上次next()返回的元素it.remove();//names.remove(name);使用Iterator迭代过程中,不可修改集合元素,否则会引起异常}//对name变量重新赋值,不会改变集合元素本身name="测试字符串";}System.out.println("\n"+"集合names中的元素:"+names);//void forEachRemaining(Consumer action)使用Lambda来遍历集合元素Iterator b=books.iterator();b.forEachRemaining(new Consumer(){ public void accept(Object element) { System.out.print(element+" "); }});System.out.println();for(Object obj:books){String book=(String)obj;System.out.print(book+" ");if(book.equals("数学")){it.remove();}}System.out.println("\n"+books);books.add("思想政治");books.add("多媒体");books.add("艺术设计");books.add("机器学习算法");books.add("云计算");books.add("云计算和大数据");System.out.println("books集合经过添加元素后:\n"+books);/* * Java8为Collection新增的removeIf(Predicate <? super E>filter)方法, * 该方法批量删除符合filter条件的所有元素。 */books.removeIf(new Predicate(){public boolean test(Object arg0) {//统计books集合中字符串长度大于3的数量if(((String) arg0).length()>2){return false;}return true;}});System.out.println("利用removeIf处理后,books变为:\n"+books);System.out.println("经过calAll处理后满足条件的元素:");System.out.println(calAll(books,new Predicate(){public boolean test(Object arg0) {if(((String)arg0).contains("云计算")){return true;}return false;}}));System.out.println("调用stream末端方法:");System.out.println(books.stream().filter(new Predicate(){public boolean test(Object arg0) {if((boolean)((String) arg0).contains("云计算")){return true;}return false;}}).count());//先调用Collection对象的stream()方法将集合转换为对应的stream//在调用stream的mapInt()方法获取原有的Stream对应的Intstreambooks.stream().mapToInt(new ToIntFunction(){public int applyAsInt(Object arg0) {return ((String)arg0).length();}}).forEach(new IntConsumer(){//调用forEach()方法输出IntStream中每个元素public void accept(int arg0) {System.out.print(arg0+" ");}});}public static int calAll(Collection books,Predicate p){int total=0;for (Object obj:books){//统计满足Predicate指定条件的对象if(p.test(obj)){System.out.println(obj);total++;}}return total;}}</span>
<span style="font-family:Times New Roman;font-size:18px;">import java.util.function.Consumer;import java.util.function.IntConsumer;import java.util.function.IntPredicate;import java.util.function.IntUnaryOperator;import java.util.stream.*;import java.util.stream.IntStream.Builder;public class InstreamTest {public static void main(String[] args) {IntStream is= IntStream.builder().add(20).add(19).add(-3).add(18).build();//PS:下面调用聚集方法的代码每次只能执行一次 System.out.println("is所有元素的最大值:"+is.max().getAsInt()); System.out.println("is所有元素的最小值:"+is.min().getAsInt()); System.out.println("is所有元素的总和:"+is.sum()); System.out.println("is所有元素的总数:"+is.count()); System.out.println("is所有元素的平均值:"+is.average().getAsDouble()); System.out.println("is所有元素的平方是否都大于20:"+ is.allMatch(new IntPredicate(){public boolean test(int arg0) {if(arg0*arg0>20)return true;return false;} })); System.out.println("is所有元素的平方是否都大于20:"+ is.anyMatch(new IntPredicate(){public boolean test(int arg0) {if(arg0*arg0>20)return true;return false;} })); //将is映射成一个新的stream,新的stream的每个元素是原来的stream元素的2倍+1 IntStream newIs=is.map(new IntUnaryOperator (){public int applyAsInt(int arg0) {return (arg0*2+1);} }); //使用方法遍历集合元素 newIs.forEach(new IntConsumer(){public void accept(int arg0) {System.out.println(arg0);} }); }}</span>
0 0
- java集合(包括java8新增知识)
- java中日期和时间相关类(包括java8中新增java.time包)
- Java8中新增加的集合类
- Java8中新增加的集合类
- Java8中新增加的集合类
- 使用Java8新增的Predicate操作集合
- Java8新增的Map集合以及各Map的实现
- java匿名内部类以及java8新增的lambda方法
- java8中java.util.Map接口新增默认方法说明
- Java 集合框架分析:DelayQueue java8
- 深入java集合系列:java8 LinkedList详解
- java8新增加特性
- Java8新增日期
- java集合框架知识
- Java知识总结-集合
- Java 集合知识汇总
- 【JAVA知识】集合框架
- java集合相关知识
- IOS网络篇16之强大的UIWebView
- Unity游戏移植到Windows Phone文章索引
- 编译原理三大经典书籍(龙书 虎书 鲸书)
- Mac 下 Mosquitto 安装和配置
- I/O多路复用之select,poll和epoll
- java集合(包括java8新增知识)
- vs2008快捷键
- android 开机自动启动
- js正则建立对象方法
- js实现自适应宽高
- [Android] HttpURLConnection or Apache Http client
- myeclipse 搭建ssh框架
- Linux线程-互斥锁pthread_mutex_t
- 寻找满足后缀要求的第一个文件名及其类型的C程序实现