2013-08-23 5 views
-1
public class TestSet { 
    public static void main(String[] args){ 
    Set s = new LinkedHashSet(); 
    s.add("Windows"); 
    s.add("Mac"); 
    s.add("Mac"); 
    s.add("Unix"); 
    System.out.println(s); 
    } 
} 

define ... set은 중복 값을 허용해서는 안됩니다 ... add 메소드가 중복 값을 삽입하려고하면 ... false를 반환해야합니다. 그러나이 코드는 [windows , mac, unix] 대신 오류 ??컬렉션에 중복 값을 허용합니까?

+3

예, s.add'세 번째 호출 ("맥")'돌아갑니다 거짓 -하지만 그것은 세트에서 제거하지 않습니다. –

답변

0

세트 인터페이스는 한 세트의 수학적 추상화 같다. 예외를 던질 필요가 없습니다.

당신은 어떤 duplicates.This를 생략 할 set.It의 크기가 귀하의 경우 3 인쇄됩니다 볼 수 있습니다
2

Set#add이 세트에 아직 지정된 요소가 포함되어 있지 않으면 인 경우 true을 반환합니다. 값이 중복되면 Exception을 추적하지 않습니다.

아직 지정되지 않은 경우 지정된 요소를이 집합에 추가합니다 (선택 사항). 지정된 요소 e가 에 추가됩니다. 세트에 (e == null? e2 == null : e.equals (e2))와 같은 요소 e2가 포함되어 있지 않은 경우는이 세트를이 세트에 추가합니다. 이 세트에 요소가 이미 포함되어있는 경우 호출은 세트를 변경하지 않고 false를 반환합니다. 생성자에 대한 제한이있는 의 조합에서는 중복 된 요소가 포함되지 않도록합니다 ( ).

Find more on Documentation

boolean result = s.add("Mac"); // would be true 
boolean result1 = s.add("Mac");// would be false 
+0

Subhrajyoti Majumder youn so much ... 지금 컨셉이 명확하다 – sandeep

+0

컨셉을 구축하는 가장 좋은 방법은 문서를 읽는 것입니다 :) mind it;) –

관련 문제