2012-05-04 3 views
1

집합을 전달하여 Java에서 새 집합을 만드는 동안 새 집합을 수정하면 원래 집합도 수정됩니다. 새 집합에 대한 변경 내용을 전달하려면 어떻게해야합니까? 하나는 원래 하나에 영향을 미치지 않습니까?집합을 전달하여 새 집합을 만듭니다.

+1

혼란스럽지 않은지 확인하십시오 : "그 안에있는 모든 객체의 * 사본 *으로 새 세트 만들기"에서 "동일한 객체가있는 새 세트 만들기". 그들은 매우 다릅니다. – David

답변

5
Set newSet = new HashSet(oldSet); 

이것은 이전 세트의 복사합니다; 이후에 변경된 사항은 이 아니고이 새 세트에 적용됩니다.

1

IT는 Set의 구현에 달려 있지만, 그 생성자가 구현되는 경우들에서 Set API, 기존의 구현 클래스를 체크하면 를 구축 새로운 설정을 말한다.

HashSet :

당신은 그것을 확인할 수 지정된 컬렉션의 요소를 포함

를 구축 새로운 세트.

TreeSet :

구성한 지정된 컬렉션의 요소를 포함하는 새로운 트리 세트 [...]

LinkedHashSet :

구성하는 새로운 spe와 같은 요소를 사용하는 링크 된 해시 세트 cified 컬렉션.

+0

@ 보헤미안의 대답은 완벽하게 유효합니다. 제 대답으로 저는 어떻게 대답을 얻는지를 보여주기 위해 노력하고 있습니다. 그래서 비슷한 의문에 대해 그 과정을 반복 할 수 있습니다. –

0

여기에 내가 무엇을 찾고 있었다입니다 :

new HashSet<String>(Arrays.asList(new String[]{"one","two"})); 
0

새로운 String 배열이 필요하지 않을 수 있습니다.

새 HashSet (Arrays.asList ("one", "two")));

위의 줄이면 충분합니다.

관련 문제