2013-10-09 2 views
2

String 배열과 List<String> 배열이 있습니다. 내가 원하는 것은 더 큰 크기의 변수를 사용하여 더 작은 변수의 값 제거의 기초로 사용하는 것입니다. 나는 또한 큰 변수의 값을 다른 변수에 넣지 않기를 원한다. 두 변수가 데이터 유형에 따라 다른 이유는 String[] group 변수가 JSP 페이지의 확인란 그룹이고 List<String> existingGroup이 데이터베이스의 ResultSet이기 때문입니다. 예를 들어 :List 및 배열에없는 요소 비교 및 ​​제거 Java

String[] group에는 다음이 포함

Apple 
Beef 
Lasagna 
Flower 
Lychee 

를 그리고 두 변수의 크기가 달라질 수 있기 때문에, 아직 제대로 값을 제거해야합니다

Apple 
Banana 
Juice 
Beef 

List<String> existingGroup이 포함되어 있습니다. 내가 가진 무엇

지금까지

if(groupId.length >= existingGroup.size()) { 
     for(int i = 0; i < groupId.length; i++) { 
      if(! existingGroup.contains(groupId[i])) { 
       if(existingGroup.get(existingGroup.indexOf(groupId[i])) != null) { 
        // I'm unsure if I'm doing this right 
       } 
      } 
     } 
    } else { 
     for(int i = 0; i < existingGroup.size(); i++) { 
      // ?? 
     } 
    } 

감사합니다.

+1

:-)

existingGroup.removeAll(input); //only elements which were not in input left input.removeAll(existingGroup); //only elements which were not in existingGroup left 

선택은 당신입니다 수행 일반적인 수없는 요소가 원한다면 (

List<String> input = Arrays.asList(array); //now you can do intersections input.retainAll(existingGroup); //only common elements were left in input 

을하거나 http://stackoverflow.com/questions/163998/classical-set-operations-for-java-util-collection) – bsingh

답변

3

List 인터페이스가 제공하는 방법을 사용할 수 있습니다.

list.removeAll(Arrays.asList(array)); // Differences removed 

또는 필요에 따라

list.retainAll(Arrays.asList(array)); // Same elements retained 

.

+0

두 메소드 모두'boolean'을 반환합니다 ... –

4

좋아, 배열을 List으로 변환하는 것으로 시작합니다. 방금 [더 명확]이 스택 오버플로 게시물을 참조하시기 바랍니다

+0

대단하군요. 그러나 그것들 사이의 차이점도 필요합니다. , 공통 요소뿐만 아니라. 내 게시물의 시작 부분에 대한 내 성명서가 모호해서 다시 말해 보았습니다. – makalshrek

+0

'retainAll'은 변수가'boolean' 타입이어야한다고 불평합니다. 이것은 일반적인 요소를 얻기위한 올바른 방법입니까? – makalshrek

+0

죄송합니다. 내 asnwer을 (를) 편집했습니다. –