2014-02-14 2 views
0

나는 java.util.HashSet을 읽지 않습니다. 정렬하지 않습니다. 그러나 때 출력이 HashSet에서 정렬하기

[1, 2, 5] 

왜 값이 분류되어있다이 코드를

import java.util.*; 

public class Example { 
    public static void main(String[] args) { 
     Set set = new HashSet(); 
     set.add(newInteger(5)); 
     set.add(new Integer(2)); 
     set.add(new Integer(1)); 

     System.out.println(set); 
    } 
} 

을 실행?

+0

해시 코드 모듈 숫자로 정렬합니다. – SLaks

+1

자바에는 'javadoc'이라는 문서 기능이 있습니다. 'HashSet'의 javadoc을 읽습니다. –

+1

... 숫자 순서대로 우연히 나옵니다. – rgettman

답변

0

항상 보장 될 수 있습니다. 주석에 이미 언급 한 바와 같이, 우연히 우연히 발생합니다.이 경우에는 Javadoc을 확인하는 것이 관심이있는 경우입니다.

본질적으로 해시 함수 (예 : HashSet)는 값을 특정 '버킷'또는 메모리의 빠른 룩업 (즉, 체크 집합 멤버십 등)을위한 위치에 매핑하기 위해 사용합니다. 간단한 예제는 값을 저장하는 버킷을 결정하기 위해 숫자 (예 : '버킷'의 수)가 mod 인 경우입니다.이 경우 사용자가 추가 한 정수 값보다 가능성이 큽니다 순서대로 배치됩니다.