2016-02-22 118 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()]); 
} 
相关问题