我正在嘗試編寫一個程序,我有兩個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 –