생성자와 메서드
해쉬 셋에서는
HashSet()
HashSet(Collection c)
HashSet(int initialCapacity)
HashSet(int initialCapacity, float loadFactor)
위와 같은 생성자가 있다
initialCapacity에 초기 용량 loadFactor은 언제 길이를 더 늘릴지 정하는 겁니다
loadFactor에 0.5를 적으면 초기 용량의 50%가 차 있을 때 2배 길이를 늘리는 겁니다
특징
- 순서가 없다 중복도 허용하지 않는다
순서는 list를 이용하면된다 쭉 읽어보시고 LinkedList로 바꾸는 방법이 있다
그걸참고합시다
List의 특징은 중복이가능하고 순서가 있다
추가
- boolean add(Object o) //추가
- boolean addAll(Collection) //합집합
삭제
- boolean remove(Object o) //삭제
- boolean removeAll(Collection c) //교집합
- boolean retainAll(Collection) //차집합
포함 여부
- boolean contains(Object o) // 포함 여부
- boolean containsAll(Colleaction c) // 컬렉션의 있는 요소가 모두 포함 되어있는지
별도
- boolean isEmpty() //비어있는지 여부
- int size() //저장된 객체수 (초기에 설정한 것과 별개로 저장된 객체의 수)
- Object[] toArray() //각 객체를 배열로 변환
- Object[] toArray(Object[] a) /..
- Iterator iterator() //Iterator로 변환 (아래 예제 참고)
HashSet iterator
public static void main(String[] args) {
Object[] objArr = {"10", "20", "66"};
Set set = new HashSet();
final int j = objArr.length;
for (int i = 0; i < j; i++) {
set.add(objArr[i]);
}
Iterator i = set.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
}
위와 같이 이용할 수 있다
아직 iterator을 아는 가정하에 설명을 생략하겠습니다
HashSet과 LinkedList 로 Sort
public static void main(String[] args) {
Object[] objArr = {"10", "20", "66"};
Set set = new HashSet();
final int j = objArr.length;
for (int i = 0; i < j; i++) {
set.add(objArr[i]);
}
List list = new LinkedList(set);
Collections.sort(list); //정렬
System.out.println(list);
}
리스트에는 자신이 만든 객체가 들어갈수가 있다
하지만 그객체들은 비교를 할수없다 그 객체가 가지고있는 요소중에 비교를 해야된다
그문제를 해결하기위해 Comparator을 이용하는데 아래에 있는링크랠 참고해주세요
마무리
HashSet을 알아봤습니다
'Language > Java' 카테고리의 다른 글
자바 문자열에 큰 따움표, 작은 따움표 넣기. (줄바꿈 하는법) (0) | 2021.07.13 |
---|---|
[Java] 자바 템플릿 메소드 패턴(디자인 패턴) (0) | 2021.07.11 |
[Java]자바 트리셋(TreeSet) 완벽한 사용법 & 예제 (1) | 2020.09.14 |
[Java]자바 Comparator로 객체정렬 기준정하기 사용법과 예제 (0) | 2020.09.13 |
[Java] 자바 인터페이스 (interface) 코드로 이해하고 정리 (0) | 2020.09.13 |
댓글