【发布时间】:2020-02-14 04:23:35
【问题描述】:
我有一个类 Detail.java 带有一些属性 id、security、description、items。 Items 是一个 ArrayList 的详细信息
public class Detail {
private int id;
private boolean security;
private String description;
private List<Detail> items;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public boolean isSecurity() {
return security;
}
public void setSecurity(boolean security) {
this.security = security;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public List<Detail> getItems() {
return items;
}
public void setItems(List<Detail> items) {
this.items = items;
}
}
这个 ArrayList (treeview) 和我的数据
[
{
"id": 1,
"security": true,
"description": "description 1",
"items": [
{
"id": 11,
"security": true,
"description": "description 11"
},
{
"id": 12,
"security": false,
"description": "description 12",
"items": [
{
"id": 121,
"security": true,
"description": "description 121"
},
{
"id": 122,
"security": false,
"description": "description 122"
}
]
},
{
"id": 13,
"security": true,
"description": "description 13"
},
{
"id": 14,
"security": false,
"description": "description 14"
}
]
},
{
"id": 2,
"security": true,
"description": "description 2",
"items": [
{
"id": 21,
"security": true,
"description": "description 21"
},
{
"id": 22,
"security": false,
"description": "description 22"
},
{
"id": 23,
"security": true,
"description": "description 23"
},
{
"id": 24,
"security": false,
"description": "description 24"
}
]
}
]
我想通过过滤所有安全性为真的节点来过滤或创建这个ArrayList
最好的方法是什么?使用迭代器?用第一个创建一个新的arrayList 和克隆对象? 如何管理物品?
感谢您的帮助
【问题讨论】:
-
您可以创建自己的方法来递归迭代树并使用
items.remove删除不匹配的元素 -
不,因为我浏览了我的数组列表