java – 查找元素或检查它是否存在于数组/列表中?
发布时间:2020-12-15 05:15:01 所属栏目:Java 来源:网络整理
导读:我是新手,我真的不明白这是如何运作的. 我列出了一个存储房间信息的清单: ListRoom rooms = new ArrayList(); 每个房间存储其房间号(整数),类型(枚举),价格(双),容量(整数)和设施(字符串)的数据. 长话短说,我的问题是: (1)如何搜索此列表,例如检查是否存在
我是新手,我真的不明白这是如何运作的.
我列出了一个存储房间信息的清单: List<Room> rooms = new ArrayList<>(); 每个房间存储其房间号(整数),类型(枚举),价格(双),容量(整数)和设施(字符串)的数据. 长话短说,我的问题是: (1)如何搜索此列表,例如检查是否存在编号为’401’的房间? (2)如何打印出每个单独的房间及其信息? 额外信息: 我可以通过以下方式添加房间: Room r = new Room(roomNumber,roomType,price,capacity,facilities); rooms.add(r); (我使用构造函数和getRoomNumber()等方法创建了一个’Room’类. 我发现我可以搜索“房间”列表并显示我知道哪个房间存在的信息,例如:房间号101: // Info for room '101' Room room = rooms.stream() .filter(r -> r.getRoomNumber() == 101) .findFirst().orElseThrow(); System.out.println("Room Number: " + room.getRoomNumber()); System.out.println("Type: " + room.getRoomType()); System.out.println("Cost: " + room.getPrice()); System.out.println("Capacity: " + room.getCapacity()); System.out.println("Facilities: " + room.getFacilities()); 上面的代码工作正常. 我尝试使用上面的try和catch来查看是否存在一个房间(如果它没有抛出NoSuchElementFound异常)但这似乎根本不起作用,代码甚至不编译. 我也尝试过使用(有和没有valueOf): Arrays.asList(rooms).contains(Integer.valueOf(401)) 但这并没有真正起作用.代码编译但它实际上没有做任何事情. 所以,我的问题(如前所述)是: (1)如何搜索此列表,例如检查是否存在编号为’401’的房间? (2)如何打印出每个单独的房间及其信息? 谢谢! 解决方法
如果要检查特定房间并抛出异常(如果不存在),则需要向OREseThrow()方法提供异常供应商,例如:
List<Room> rooms = new ArrayList<>(); Room room = rooms.stream() .filter(r -> r.getRoomNumber() == 101) .findFirst() .orElseThrow(() -> new NoSuchElementException()); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |