2016-02-22 150 views
-5

我正在嘗試編寫一個程序,我有兩個arraylists,我想檢查它們是否包含兩者中相同的組件。檢查兩個arraylist是否包含一個類似的組件

例如:

arraylist1 {steve, bob, alex, jeff} 
arraylist2 {jack, jeff, chris, jake} 

因爲jeff是在兩個程序將打印jeff

+0

我停留在爭論立場依然如此,迄今爲止我還沒有嘗試過任何東西。 – BMW

+0

在繼續使用ArrayList之前,您必須查看以下鏈接的相關文檔https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html –

回答

0

您可以將此數組列表的每個元素與該數組列表的每個元素進行比較。如果他們相等,您將打印......您可以使用每個循環。

0

非常簡單,但緩慢的方法:(我知道必須有更快的方法)通過第一列表

循環。對於該列表中的每個項目,循環遍歷第二個列表以查看是否有任何項目與第一個項目相同。

public static boolean areListsSimilar(ArrayList<String> list1, ArrayList<String> list2) { 
    for (item1 : list1) { 
     for (item2 : list2) { 
      if (item1.equals(item2)) return true; 
     } 
    } 
    return false; 
} 

或者你也可以做(的ArrayList<String>ArrayList代替)這個

public static boolean areListsSimilar(ArrayList list1, ArrayList list2) { 
    for (item1 : list1) { 
     for (item2 : list2) { 
      if (item1.equals(item2)) return true; 
     } 
    } 
    return false; 
} 

或者添加泛型約束只接受實現Equatable

public static <T> boolean areListsSimilar(ArrayList<? extends Equatable> list1, ArrayList<? extends Equatable> list2) { 
    for (item1 : list1) { 
     for (item2 : list2) { 
      if (item1.equals(item2)) return true; 
     } 
    } 
    return false; 
} 
0
public String[] search(ArrayList<String> alphas, ArrayList<String> betas) { 
    ArrayList<String> results = new ArrayList<String>(); // Create container for results 

    // Search for results 
    for (String alpha : alphas) { 
     for (String beta : betas) { 
      if (alpha.equals(beta)) { 
       results.add(alpha); 
       break; 
      } 
     } 
    } 

    // Return results 
    return results.toArray(new String[results.size()]); 
} 
相關問題