2016-09-03 4 views
1

Ich möchte list1, list2 und list3 in einem Arraylist zum Schnittpunkt. Also, ich möchte ArrayLists von ArrayList2D Schnittpunkt. ArrayList2D kann (max) sechs ArrayList enthalten. Wie kann ich?Kreuzung von zwei Dimensional Arraylist in Java

Das ist Kreuzung von zwei Listen.

public <T> List<T> intersection(List<T> list1, List<T> list2) { 
    List<T> list = new ArrayList<T>(); 

    for (T t : list1) { 
     if(list2.contains(t)) { 
      list.add(t); 
     } 
    } 

    return list; 
} 

Das ist mein Codes ist

ArrayList<ArrayList<Integer>> arrayList2D=new ArrayList<ArrayList<Integer>>(); 

    ArrayList<Integer> list1 = new ArrayList<Integer>(); 
    list1.add(0); 
    list1.add(8); 
    list1.add(15); 
    list1.add(26); 
    list1.add(124); 
    ArrayList<Integer> list2 = new ArrayList<Integer>(); 
    list2.add(0); 
    list2.add(7); 
    list2.add(17); 
    list2.add(26); 
    list2.add(178); 
    ArrayList<Integer> list3 = new ArrayList<Integer>(); 
    list3.add(4); 
    list3.add(8); 
    list3.add(12); 
    list3.add(26); 
    list3.add(128); 

    arrayList2D.add(list1); 
    arrayList2D.add(list2); 
    arrayList2D.add(list3); 
+0

Haben Sie mehrdimensionale Array-Liste erstellen möchten anrufen müssen? – Abhijeet

+0

Ihre Frage ist eher unklar. – Gendarme

Antwort

1

Ok, um pro meinem Verständnis müssen Sie alle Arraylisten unter arrayList2D enthalten schneiden.

public <T> List<T> intersection(List<T> list1, List<T> list2) { 
    list1.retainAll(list2); 
    return list1; 
} 

machen andere Methode, die Sie

public static List<Integer> getAllIntersection(ArrayList<ArrayList<Integer>> arrayList2D) { 
    List<Integer> finalList = arrayList2D.get(0); 
    for (int i=1; i<arrayList2D.size(); i++) { 
     finalList=intersection(finalList,arrayList2D.get(i)); 
    } 
    System.out.println("firstList"+finalList); 
    return finalList; 
} 

dann finaly getAllIntersection(arrayList2D) rufen zu bekommen Wunsch Ergebnis

+0

Danke, das löste mein Problem –

+0

dann können Sie upvote steigen :) –

+0

ok, ich erhöhte Upvote –