2017-02-26 93 views
-4
for (int i = 0; i < arrayA.length; i++) { 

     for (int y = 0; y < arrayB.length; y++) { 
      if (arrayA[i] == arrayB[y]) { 
       cnt++; 
      } 
     } 
    } 

    if (cnt == arrayB.length) { 
     // B is subset of A 
    } 

回答

1

可以陣列轉換成lists和使用containsAll方法來檢查這,例如:

List<String> list1 = Arrays.asList(a); 
List<String> list2 = Arrays.asList(b); 
list1.containsAll(list2); 

Here的Javadoc文檔containsAll方法。

更新

下面是它如何在個案工作int陣列:

int[] a = new int[10]; 
int[] b = new int[10]; 
List<Integer> list1 = Arrays.stream(a).boxed().collect(Collectors.toList()); 
List<Integer> list2 = Arrays.stream(b).boxed().collect(Collectors.toList()); 
list1.containsAll(list2); 
+0

如果它是什麼,如果數組等原始類型'INT []'?值得一提的是'Arrays.asList'不能正確處理這種情況,我們需要其他方式來填充我們的列表。 – Pshemo

+0

基於數組類型,我們可以相應地更改集合類型。如果它是原始的,我們甚至可以使用'stream'並將其裝箱。 –

+0

這是非常真實的。國際海事組織這是值得回答。 – Pshemo

相關問題