我有一个非常小的问题,我似乎无法弄清楚。我正在尝试根据ArrayList中的一种值提取数据>并将其放入另一个ArrayList。问题是for循环只运行一次,在这种情况下我需要它遍历整个数组,然后将数据放入unSuppressedData arraylist。
以下是for循环:
for (int x = 0; x < suppressedStatus.length; x++) {
for (int i = 0; i < availData.size(); i++) {
Hashtable<String,String> checkAvail = availData.get(i);
String itemStatus = checkAvail.get("loanStatus");
if (unSuppressedData.contains(checkAvail) == false) {
if (!(itemStatus.equals(suppressedStatus[x]))) {
Log.d("Item Status", itemStatus);
Log.d("Suppressed Status", suppressedStatus[x]);
unSuppressedData.add(checkAvail);
//break;
}
}
}
}
suppressStatus是一个String数组
availData是我想从中提取数据的arraylist
unSuppressedData是我想要将数据放在
我认为它只运行一次是由于这行代码:
if (unSuppressedData.contains(checkAvail) == false) {
但是我需要这一行来检查我的unSuppressdData是否有数据,如果没有则会将availData arraylist中的数据添加到unSuppressedData arraylist中。
难道我错误地写了这段代码吗?感谢对此的任何见解。
答案 0 :(得分:0)
这种东西的好收集类型是LinkedHashSet。因为它是一个集合,所以每个元素只能添加一次。作为哈希,包含测试很快。被“链接”的结果集按插入顺序迭代。