JDK1.8新特性Demo,极大地减少了代码量,感兴趣的可以看看。

1.List集合传统写法

List<String> list = new ArrayList<String>();
list.add("张三");
list.add("王五");
list.add("尼古拉赵四");
list.add("海贼王");

2.List集合新式写法

 List<String> strList = Arrays.asList("YangHang", "AnXiaoHei", "LiuPengFei");

3.将对象根据条件进行筛选传统写法

 // 筛选颜色为红色
    public  List<TestPojo> filterProductByColor(List<TestPojo> list){
        List<TestPojo> prods = new ArrayList<>();
        for (TestPojo product : list){
            if ("红色".equals(product.getName())){
                prods.add(product);
            }
        }
        return prods;
    }

    /**
     * 传统写法
     * @param list
     * @return
     */

    // 筛选价格小于8千的
    public  List<TestPojo> filterProductByPrice(List<TestPojo> list){
        List<TestPojo> prods = new ArrayList<>();
        for (TestPojo product : list){
            if (product.getPrice() < 8000){
                prods.add(product);
            }
        }
        return prods;
    }
public static void main(String[] args){
      List<TestPojo> pojoList =
              Arrays.asList(new TestPojo("紫色", 1000),
                      new TestPojo("蓝色", 8006),new TestPojo("红色", 1005));
        TestOne testOne = new TestOne();

        List<TestPojo> filterProductByColor = testOne.filterProductByColor(pojoList);
        //JDK1.8新特性,进行循环,一句代码就可以实现。
        filterProductByColor.stream().distinct().forEach(System.out::println);

我在这里引用了一个实体类对象,并重写了.equals方法。

public class TestPojo {

    private String name;
    private String age;
    private String sex;
    private Integer price;
    public TestPojo(String name, String age) {
        this.name = name;
        this.age = age;
    }

    public TestPojo(String name, Integer price) {
        this.name = name;
        this.price = price;
    }
    @Override
    public String toString() {
        return "TestPojo{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", price=" + price +
                '}';
    }
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        TestPojo baseBean = (TestPojo) o;
        return age == baseBean.age &&
                name.equals(baseBean.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public Integer getPrice() {
        return price;
    }

    public void setPrice(Integer price) {
        this.price = price;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

4.将对象根据条件进行筛选新式写法

 public static void main(String[] args){
      List<TestPojo> pojoList =
              Arrays.asList(new TestPojo("紫色", 1000),
                      new TestPojo("蓝色", 8006),new TestPojo("红色", 1005));
        TestOne testOne = new TestOne();
        /*利用新特性进行条件筛选*/
        //筛选价格小于8000的
        pojoList.stream().filter((p) -> p.getPrice() <8000).limit(2).forEach(System.out::println);
        // 筛选颜色为红色
        pojoList.stream().filter((p) -> "红色".equals(p.getName())).forEach(System.out::println);
        // 遍历输出名称
        pojoList.stream().map(TestPojo::getName).forEach(System.out::println);
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值