Java:如何将List <string>与List <list <string>&gt;进行比较?</list <string> </string>

时间:2014-04-03 13:28:31

标签: java oop collections

有一个ArrayList1和一个List2,其中包含几个arraylists。

我想将arraylist1中的内容与所有arraylists(在List2中)进行比较,并从List2中抛出不等于arraylist1的记录。

有几个问题与此类似,但我无法清楚地理解它。请帮忙。

谢谢, 麦克

4 个答案:

答案 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)