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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手机有骚扰电话怎么办 半夜到南宁机场怎么办 得了水痘坐火车怎么办 香港账户被限制怎么办 司法拍卖车扣分怎么办 速递易已超期怎么办 e栈快递换微信怎么办 e栈快递柜打不开怎么办 小孩耳朵塞东西怎么办 把隐形眼镜吃了怎么办 街道分车位不公平怎么办 服务区修车被宰怎么办 2018高速逃费怎么办 高速不停车卡怎么办 独立显卡显存不够怎么办 rx470d买不到了怎么办? 南方避险基金到期怎么办 高铁票认证失败怎么办 高铁票三个小孩怎么办 12306取消三次后怎么办 外国人护照过期了怎么办 行李丢飞机上怎么办 学生票没次数了怎么办 去美国行李超重怎么办 12306密码找回失败怎么办 12306注册身份重复怎么办 12306身份信息重复怎么办 必修课没有选上怎么办 大学错过了选课怎么办 大学忘记选课了怎么办 火车网上购票儿童票怎么办 售票厅看见小偷怎么办 没赶上火车火车票怎么办 重庆到韩国签证怎么办 重庆去韩国签证怎么办 重庆办韩国签证怎么办 故宫网上预定后怎么办 坐游轮如果晕船怎么办 听听力反应慢怎么办? 毕业证照片丢了怎么办 离线网盘有违规内容怎么办