添加它只有一次我有一个类:如果列表项是虚假的,另一份名单
public class myObj {
private boolean liesIn;
private String Area;
public myObj(){
}
public myObj(boolean liesIn, String Area) {
super();
this.liesIn = liesIn;
this.Area = Area;
}
public boolean isLiesIn() {
return liesIn;
}
public void setLiesIn(boolean liesIn) {
this.liesIn = liesIn;
}
public String getArea() {
return Area;
}
public void setArea(String Area) {
this.Area = Area;
}
}
我填一个表与这些对象:
List<myObj> results = new ArrayList<myObj>();
for (int i = 0; i < 10; i++) {
myObj theObj = new myObj();
theObj.setLiesIn(condition);
if (condition) {
theObj.setArea(Areas.values()[i].name());
results.add(theObj);
} else {
theObj.setArea("No area");
results.add(theObj);
}
}
现在,问题是,例如,我可能有一个真实的,9个失误,并在退出时(当我返回结果时),我得到的所有结果/对象如下:
[
{
"liesIn": false,
"Area": "No area"
},
{
"liesIn": false,
"Area": "No area"
},
{
"liesIn": true,
"Area": "Area13"
},
{
"liesIn": false,
"Area": "No area"
},
{
"liesIn": true,
"Area": "Area14"
},
....
]
所以,如果我有真正的价值观,我只想展示他们。没有意义来显示虚假价值。
如果所有的值都是假的,我只想显示一个结果。
我想创建一个新的结果列表,并使用迭代器在旧列表:,我不知道该如何处理的最后一块code.Maybe的还有另一种方式来
List<myObj> newresults = new ArrayList<myObj>();
Iterator<myObj> iter = results.iterator();
while (iter.hasNext()) {
myObj lies = iter.next();
if (lies.isLiesIn() == true) {
newresults.add(lies);
} else {
// add only 1 object with false value (no area)
}
}
所以做它。我想使用副本为了复制results
到newresults
但我再也不能处理else语句。
你可以只打开名册,如果有至少一个真正的价值 - 复制过来。如果没有任何真正的项目,循环后随机复制一个项目(让我们说索引0) - 因为它们都是假的,并且没有必要特别选择一个项目。我用下面的代码写了一个答案。我希望它有帮助。 – Assafs