java8 lambda尝试

来源:互联网 发布:小凯老师淘宝 编辑:程序博客网 时间:2024/05/01 11:48
package com.xiuye.test;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import static java.util.Comparator.comparing;import java.util.List;public class TestDoubleColon {public static void main(String[] args) {List<Apple> apps = new ArrayList<Apple>();Apple app = new Apple();app.setWeight(12);apps.add(app);app = new Apple();app.setWeight(16);apps.add(app);app = new Apple();app.setWeight(77);apps.add(app);app = new Apple();app.setWeight(99);apps.add(app);app = new Apple();app.setWeight(88);apps.add(app);app = new Apple();app.setWeight(12);apps.add(app);List<Apple> appsCopy = new ArrayList<Apple>();//size为0//System.out.println(appsCopy.size());//0for(int i = 0;i<apps.size();i++){appsCopy.add(new Apple());}/** * public static <T> void copy(List<? super T> dest, List<? extends T> src) {        int srcSize = src.size();        if (srcSize > dest.size())            throw new IndexOutOfBoundsException("Source does not fit in dest");        if (srcSize < COPY_THRESHOLD ||            (src instanceof RandomAccess && dest instanceof RandomAccess)) {            for (int i=0; i<srcSize; i++)                dest.set(i, src.get(i));        } else {            ListIterator<? super T> di=dest.listIterator();            ListIterator<? extends T> si=src.listIterator();            for (int i=0; i<srcSize; i++) {                di.next();                di.set(si.next());            }        }    } */Collections.copy(appsCopy,apps);//必须要dest的size大于src的sizeSystem.out.println("==============apps=============");for(Apple a : apps){System.out.println(a.getWeight());}System.out.println("==============appsCopy=============");for(Apple a : appsCopy){System.out.println(a.getWeight());}//排序Collections.sort(apps,new Comparator<Apple>() {@Overridepublic int compare(Apple o1, Apple o2) {return o1.getWeight() - o2.getWeight();}});System.out.println("==============apps sorted=============");for(Apple a : apps){System.out.println(a.getWeight());}System.out.println("==============appsCopy sorted=============");appsCopy.forEach(System.out::println);appsCopy.sort(comparing(Apple::getWeight));for(Apple a : appsCopy){System.out.println(a.getWeight());}}}class Apple{private int weight;public int getWeight() {return weight;}public void setWeight(int weight) {this.weight = weight;}}
==============apps=============121677998812==============appsCopy=============121677998812==============apps sorted=============121216778899==============appsCopy sorted=============com.xiuye.test.Apple@1218025ccom.xiuye.test.Apple@816f27dcom.xiuye.test.Apple@87aac27com.xiuye.test.Apple@3e3abc88com.xiuye.test.Apple@6ce253f1com.xiuye.test.Apple@53d8d10a121216778899


0 0
原创粉丝点击