2017-02-26 1 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 
    } 

Antwort

1

Sie können Arrays in lists umwandeln und verwenden containsAll Methode, dies zu überprüfen, z.B .:

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

Here ‚s javadoc für containsAll Methode.

aktualisieren

Hier ist, wie es bei int Arrays arbeiten:

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

Was passiert, wenn es Array, wenn primitive Art wie 'int []' ist? Es ist erwähnenswert, dass 'Arrays.asList' diesen Fall nicht korrekt behandelt und wir brauchen einen anderen Weg, um unsere Listen zu füllen. – Pshemo

+0

Basierend auf dem Array-Typ können wir den Sammlungs-Typ entsprechend ändern. Wenn es primitiv ist, können wir sogar 'stream' verwenden und es boxen. –

+0

Das ist sehr wahr. IMO Es lohnt sich, es in Antwort zu setzen. – Pshemo

Verwandte Themen