我有英雄数据集,我想显示列表,所有的英雄都是持久的,是真实的,敏捷是真实的。
{
"hero_code": 1,
"hero_name": "Blood Seeker",
"power": [
{
"skill": "Durable",
"status": true
},
{
"skill": "Agile",
"status": true
}
]
},
{
"hero_code": 2,
"hero_name": "Pudge",
"power": [
{
"skill": "Durable",
"status": true
},
{
"skill": "Agile",
"status": false
}
]
},
{
"hero_code": 3,
"hero_name": "Necrophos",
"power": [
{
"skill": "Durable",
"status": true
},
{
"skill": "Agile",
"status": true
}
]
}我就是这么做的
List<Hero> filteredList = new ArrayList<>;
data.getHeroList().forEach(hero-> {
hero.getpower().forEach(power-> {
if (power.getSkill().contains("Durable") || power.getSkill().contains("Agile")) {
if (power.getStatus() == true){
filteredList.add(hero);
}
}
});
});但是,为什么我的筛选列表最终只有6个数据而不是2个呢?有人能给我一些洞察力吗?谢谢
发布于 2022-06-17 10:25:09
这是我的尝试。没有检查它是否有效。
List<Hero> filteredList = new ArrayList<>;
data.getHeroList().forEach(hero-> {
boolean hasDurable = false;
boolean hasAgile = false;
hero.getpower().forEach(power-> {
if (power.getSkill().contains("Durable") && power.getStatus()) {
hasDurable = true;
}
if (power.getSkill().contains("Agile") && power.getStatus()) {
hasAgile = true;
}
});
if(hasDurable && hasAgile) {
filteredList.add(hero);
}
});发布于 2022-06-17 10:02:40
你需要根据你的问题陈述用和和来替换或者条件和(区-> &)
https://stackoverflow.com/questions/72657578
复制相似问题