"데이터 묶음" (== "컬렉션")
Set (집합)
1. Set은 추상클래스라 객체 생성이 불가능 하다.
2. Set류의 조상 클래스 이다.
특징 :
1. 순서가 없다. (index 개념이 없다)
2. 중복 허용이 불가능 하다.
3. 배열리스트와 마찬가지로 다양한 자료형 저장이 가능하지만,
=> 반드시, 서로 같은 자료형만 취급 한다.
4. 제네릭 <> 을 사용해 집합에 저장될 타입을 강제화 한다.
Set data = new Set(); => 에러 발생
추상 클래스라 객체 생성 불가능.
Set 추상클래스의 자손클래스로,
HashSet 이라는 클래스가 있다.
사용예시 :
1. 집합에 숫자 10을 넣어 준다.
2. 숫자 10은 총 3개
3. String 타입의 "apple"은 int 타입으로 제너릭 해줬기 때문에 "에러"가 뜨게 된다.
결과 :
1. 중복값 10은 전부 허용이 되지 않아, 한개만 존재.
2. 순서가 없기 때문에 (index가 없기 때문에)
마구잡이로 값이 저장된 모습을 볼 수 있다.
예제 :
1. 10개의 랜덤수를 생성 하기.
2. 범위는 1 ~ 15까지 이고,
3. 중복을 제외하고 생성된 랜덤수의 "개수"와 저장된 랜덤값(숫자)를 출력 하기.
결론 :
1. for문을 10번 루프하면서 1에서 15까지의 범위의 랜덤 수를 data 집합에 저장하는 코드.
2. 하지만, 결과는 6개만 저장 되었다.
3. 중복값은 저장이 되지 않음을 알 수 있다.
4. 집합은 인덱스가 없어서 마구잡이로 저장이 된다고 했는데,
이클립스 화면을 보면 뭔가 순서대로 저장이 된 느낌이 든다.
숫자의 범위가 작아서 우연의 일치일 뿐 이다.
숫자의 범위를 크게 잡고 결과를 보면,
뒤죽박죽 섞여서 저장된 것을 볼 수 있다.
정렬을 하고 싶다 ? => ArrayList 를 사용하는게 효율
'Java (국비) > Java 이론' 카테고리의 다른 글
스레드 (Thread) 간단 정리 (1) | 2023.05.22 |
---|---|
예외와 예외처리 (0) | 2023.05.19 |
컬렉션 프레임워크 (배열리스트 (ArrayList)) (0) | 2023.05.18 |
컬렉션 프레임워크 (0) | 2023.05.18 |
추상 클래스 와 추상 메서드 (0) | 2023.05.17 |