我们现在将数据库的数据查询出来了,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("已经购买");
}