假设我有一个名为House的对象,它包含一个列表
public class House {
private List<Room> roomsList;
public House(List<Room> rooms) {
roomsList = rooms;
}
/*Getter and Setter*/
...
对于房间,只有一个属性,其值由int表示:
public calss Room {
private int color;
public Room(int c) {
color = c;
}
/*Getter and Setter*/
...
现在,使用Java8,并给出一个带有List的对象
House
Room myRoom = house.getRooms.stream().filter(r -> r.getColor() == color).findFirst().orElse(null);
我希望能够做的是,给定一个
列表
为了清楚起见,对于我的用例:
>
每家房子都有一份清单
每个房间都有其属性集;
房子里的每个房间都有独特的颜色
最有可能(但不一定)只有一个房子,具有给定颜色的房间
我可以这样做:
List<House> houseList = /*a given list of houses*/
int c = 4;
House myHouse = null;
for (House house : houseList) {
List<Room> rooms = house.getRooms();
Room roomOfRightColor = house.getRooms.stream().filter(r -> r.getColor() == color).findFirst().orElse(null);
if (room != null) {
myHouse = house;
break;
}
if (myHouse == null) {
/*Handle null*/
}
return myHouse;
但是也许有更聪明和/或更直接的方法来做到这一点?
我可以想象以前有人问过类似的问题,技巧是接下来的过滤操作:
private static Optional<House> test() {
List<House> houseList = Arrays.asList(
new House(new Room(1), new Room(3)),
new House(new Room(5))
);
int color = 5;
return houseList.stream()
.filter(h -> h.getRooms()
.stream()
.anyMatch(r -> r.getColor() == color))
.findFirst();
}
因此,在过滤器内部有第二个匹配项,用于检查内部列表。我确实将其更改为返回一个可选值,而不是null,但可以随意应用对您有效的内容。
给定以下JSON结构,我希望能够在数组,其中包含具有特定。 假设我正在寻找带有的条目——在这种情况下,我想提取完整的对象: 我尝试嵌套过滤器,但没有成功: 我可以很容易地通过,但是我想实际上检索它的父对象!这在JSONPath中可能吗?
我有一个对象列表,我需要按其中一个对象属性对其进行排序。 我可以用下面的代码按升序排序 但是,这是按升序排序列表,而我需要做的是按降序排序。在对对象列表进行排序时,这可能吗?
问题内容: 我想使用Java 8技巧在一行中执行以下操作。 给定此对象定义: 和a ,我想得到a ,它是第一个列表中所有s对象的列表- 顺序相同。 我可以使用Java中的循环来做到这一点,但我相信Java8中应该有一个单行lambda可以做到这一点。我无法在线找到解决方案。也许我没有使用正确的搜索词。 有人可以为这种转换建议一个lambda或另一种线吗? 问题答案: 这应该可以解决问题: 也就是说
我可以在Java中使用循环来实现这一点,但我认为在Java8中应该有一个一行程序lambda来实现这一点。我无法在网上找到解决方案。也许我没有使用正确的搜索词。 有人能为这个转换提出一个lambda或另一个一行程序吗?
我试图排序基于一个nullable ArrayList在java 8列表。 列表如下 我正在尝试使用streams sort根据患者就诊日期(就诊列表中的第一个元素)的降序对患者对象进行排序。空值应该放在最后。最终结果必须是 我尝试过以下方法,但即使在空检查之后,也会出现空指针异常。
问题内容: jsfiddle http://jsfiddle.net/KfSBq/ 所谓子对象,是指我用ng-repeat显示的所有对象在其内部都包含一个对象列表,并且我希望根据这些子对象之一的属性进行过滤。 仅此一项就非常简单。我有个对象,每个对象都包含和对象列表: 我按类别显示它们: 我的问题是现在仍然显示不包含任何条目的日常对象。如何实现一种情况,如果过滤使列表为空,则该列表也不显示? 问题