java判断 List循环出来的数据中是否包含某一条数据

我们现在将数据库的数据查询出来了,for循环出来有10条数据,那么,如何,比对这10条数据中,有num=5这一条数据呢?如果有则返回成功,否则返回不存在这条数据。。

可以用stream流来进行匹配,简单写法

public class Exit {

    private String name;
    private int num;
    
    //有参构造···
    //get和set方法···
}
public class Demo01 {

    public static void main(String[] args) {
        List<Exit> list = new ArrayList<>();
        list.add(new Exit("张三",5));
        list.add(new Exit("李四",1));
        list.add(new Exit("王五",4));
        list.add(new Exit("赵六",6));

        //使用stream流进行匹配
        if (list.stream().anyMatch(exit -> exit.getNum() == 5)){
            System.out.println("成功");
        }else {
            System.out.println("不存在这条数据");
        }

    }

}
//collection接口的方法, contains 了解下
ArrayList<String> list = new ArrayList();
        list.add("1");
        System.out.println(list.contains("1"));

楼主的问题,看着有点迷惑...数据库查询数据时就可以加上num=5的sql过滤条件的吧?如果还是坚持查出来数据再比较,可以根据数据库返回的数据获取到num的值,再比较。方法还是蛮多的,楼主可以试试

可以通过foreach循环结合if语句判断是否存在num=5的数据,如果存在,返回即可。

楼上正解


List<GOrder> list = new ArrayList<>();
        int num = 5;
        //exist == true 便是存在
        boolean exist = list.stream().anyMatch(item -> item.getNum() == num);

if(goods.stream().filter(v -> v.getNum() == 5).findAny().isPresent()){
            System.out.println("成功");
        }else{
            System.out.println("不存在这条数据");
        }

你的数据结构是一个结果集List,里面存了10条GOrder数据,List里面的每个对象都是一条数据。
首先遍历你查询的结果集,遍历的时候判断这条数据里面的num属性是不是等于5
参考:

boolean exit = false;
        List<GOrder> orders = goodsService.getAllOrder(8);
        for(GOrder order : orders){
            if(5 == order.getNum()){
                exit =  true;
                break;
            }
        }
        
        //使用判断的结果
        if(exit){
            System.out.println("已经购买");
        }