有一个ArrayList1和一个List2,其中包含几个arraylists。
我想将arraylist1中的内容与所有arraylists(在List2中)进行比较,并从List2中抛出不等于arraylist1的记录。
有几个问题与此类似,但我无法清楚地理解它。请帮忙。
谢谢, 麦克
答案 0 :(得分:1)
根据您的实施方式,迭代:
List<String> yourSingleList = new ArrayList<>();
for (List<String> list : yourListOfLists) {
//remove entries
list.retainAll(yourSingleList);
//or remove matching entities
list.removeAll(yourSingleList);
}
或者使用迭代器进行完全比较:
List<String> yourSingleList = new ArrayList<>();
Iterator<List<String>> lists = yourListOfLists.iterator();
while (lists.hasNext()) {
if (!lists.next().equals(yourSingleList) {
lists.remove();
}
}
答案 1 :(得分:1)
我想你想要这样的东西:
List<List<String>> listlist = new ArrayList<List<String>>();
List<String> list = new ArrayList<String>();
// some example input here
list.add("A");
list.add("B");
list.add("C");
listlist.add(list);
for (List<String> l : listlist) {
for(String s : l) {
if (list.contains(s)) {
System.out.println(s + " is at position " + list.indexOf(s));
}
}
}
答案 2 :(得分:1)
结帐How to compare two ArrayList<List<String>> 把它想象成一个二维数组,并将列表A的每个元素与列表B.get(1)中的每个元素进行比较,列出B.get(2)等。
答案 3 :(得分:1)
听起来像是一个家庭作业问题,所以这里是逻辑
input: List of Arrays, Array
output: List
List Compiar getList(L, A):
| newL <- new List
| for each Array a in L do
| | for int i <- 0 to A.size()
| | | Array n = new Array
| | | for int j <- 0 to a.size()
| | | | if compairitor(A.get(i), a.get(j)) = 0 // compairitor is used to compair values
| | | | | n.add(a.get(j)
| | | | end-if
| | | end-for
| | | newL.add(n)
| | end-for
| end-for-each
| return newL
end
使用此方法替换旧列表ex old old = getList(L,Comparison array)