我正在尝试编写一个程序,我有两个arraylists
,我想检查它们是否包含两者中相同的组件。检查两个arraylist是否包含一个类似的组件
例如:
arraylist1 {steve, bob, alex, jeff}
arraylist2 {jack, jeff, chris, jake}
因为jeff
是在两个程序将打印jeff
。
我正在尝试编写一个程序,我有两个arraylists
,我想检查它们是否包含两者中相同的组件。检查两个arraylist是否包含一个类似的组件
例如:
arraylist1 {steve, bob, alex, jeff}
arraylist2 {jack, jeff, chris, jake}
因为jeff
是在两个程序将打印jeff
。
您可以将此数组列表的每个元素与该数组列表的每个元素进行比较。如果他们相等,您将打印......您可以使用每个循环。
非常简单,但缓慢的方法:(我知道必须有更快的方法)通过第一列表
循环。对于该列表中的每个项目,循环遍历第二个列表以查看是否有任何项目与第一个项目相同。
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;
}
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()]);
}
我停留在争论立场依然如此,迄今为止我还没有尝试过任何东西。 – BMW
在继续使用ArrayList之前,您必须查看以下链接的相关文档https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html –