가능한 중복 :
Check whether an array is a subset of another배열 a가 java의 배열 b의 일부인지 확인하는 방법은 무엇입니까?
나는 배열 a = { 1,4,3,5,1,2,3,6 }
및 배열 b= { 1,2,3 }
있습니다.
배열요소가 배열 a
의 어느 위치에 나타나는지 어떻게 확인할 수 있습니까? 어떤 도움을 주시면 감사하겠습니다. 감사.
가능한 중복 :
Check whether an array is a subset of another배열 a가 java의 배열 b의 일부인지 확인하는 방법은 무엇입니까?
나는 배열 a = { 1,4,3,5,1,2,3,6 }
및 배열 b= { 1,2,3 }
있습니다.
배열요소가 배열 a
의 어느 위치에 나타나는지 어떻게 확인할 수 있습니까? 어떤 도움을 주시면 감사하겠습니다. 감사.
사용 Apache Commons Lang :
for (Object element:b) {
if (ArrayUtils.contains(a,element) == false) return false;
}
return true;
가장 쉬운 방법은 분명히 내장 기능을 사용하는 것입니다. 그러나 Java에는 Collection
유형에 대해이 작업을 수행하는 기본 제공 함수 만 있습니다. 배열이 기본 유형이 아닌 경우,이 작업을 수행 할 수 있습니다
if (Arrays.asList(a).containsAll(Arrays.asList(b))) {
//...
}
을가 원시적 배열 (int[]
등)이 여전히 가장 쉬운 방법입니다 있다면, 당신은 단지 수동으로 목록으로 배열을 변환해야하거나 타사 라이브러리를 사용합니다. 이것에 대한 Guava has functions :
if (Ints.asList(a).containsAll(Ints.asList(b))) {
//...
}
감사합니다. 배열을 목록으로 변환했지만 여전히 Ints.asList를 인식 할 수 없으며 이것이 코드입니다. \t \t // 배열을 목록으로 변환하십시오. \t \t 목록 alist = (목록) Arrays.asList (a); \t \t 목록 blist = (목록) Arrays.asList (b); \t \t \t \t 경우 (Ints.asList (blist) .containsAll (Ints.asList의 (a))) { \t \t \t System.out.print ("예"); \t \t} else \t \t System.out.print ("no"); – user1172575
@ user1172575 의견에서 b의 요소는 함께 있어야한다고했지만, 그렇지 않은 경우에도 true를 반환합니다. – madth3
@ madth3, b에 fount가 아니면 false를 반환해야합니다. 그렇지 않은 경우에도 true를 반환하는 이유는 무엇입니까? – user1172575
그것은 O '에서 사소한 (N^2)'. 'O (n log n)'도 비교적 쉽습니다. 너 뭐 해봤 니? –
그냥 참고로, 여기에 대답 http://stackoverflow.com/questions/1128723/in-java-how-can-i-test-if-an-array-contains-a-certain-value –
해야 요소들은 함께 배치되거나 b의 각 요소는? –