일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 프로그래머스
- 캡슐화
- 에러
- HTML
- SQL
- DTO
- 부스트코스
- stringbuffer
- lv1
- git
- 자바
- 코드업
- 브랜치
- github
- Codeup
- 기본생성자
- HashSet
- java
- CRUD
- 파이썬
- @builder
- 깃허브
- Python
- 알고리즘
- 상속
- @NoArgsConstructor
- @AllArgsConstructor
- entity
- html tag
- 부트캠프
- Today
- Total
잉?
[Java] 컬렉션(Collection) 알아보기 + Objects.equals() 본문
컬렉션(Collection)?
배열을 고도화시켜서 컬렉션이라고 부른다.
컬렉션은 참조형 변수만 저장한다.
참조형 변수는 주소값을 저장하는 변수이다.
우리가 변수에 값을 넣으면 그 값을 가리키는 주소가 있는데 그 주소를 저장하는 변수이다.
(예시: 집이라는 변수에 우리집이라는 값을 넣으면 우리집을 가리키는 "서울시 동대문구 --동"이 저장되는 것)
컬렉션 종류
List
- 순서가 있는 데이터 집합(데이터 중복 O, 배열(Array)과 비슷
- ArrayList : 일렬로 데이터를 저장하고 순번대로 값을 하나씩 조회 가능
- LinkedList
- Stack
Queue : 위아래가 뚫린 통에 데이터를 넣고 반대쪽에서 데이터를 뺄 수 있는 집합.(FIFO;First In First Out)
Set
- 순서가 없는 데이터 집합 (데이터 중복 X)
- HashSet : 가장 빠르고 순서 예측 불가능
- TreeSet
- LinkedHashSet : 추가된 순서 또는 가장 최근에 접근한 순서대로 접근 가능(순서보장이 필요할 때 사용)
Map
- 순서가 없고, (Key, Value) 쌍으로 이루어진 데이터의 집합(Key값 중복 X)
- HashMap : 중복 X, 순서 보장X, 키와 값으로 null O
- TreeMap
조건문을 통해 "끝"이라는 문자가 입력되었을 경우 반복문을 나오는 코드를 짰다.
근데 "끝"이라는 값을 입력해도 커서가 켜있고 종료되지 않았다.
LinkedHashSet strSet = new LinkedHashSet<>();
while(true){
String contents = sc.next();
if(contents == "끝"){
break;
}
strSet.add(contents);
}
그 이유는 Objects.equals에서 확인할 수 있었다.(↓equals() 알아보기!)
[Java] Object클래스, equals() 알아보기
과제를 진행하면서 "=="와 "equals()"의 차이에 대해 잘 알아보고 넘어갔다 생각했는데 equals() 관련 글을 볼 때마다 혼란을 느꼈다. 그래서 다시 정리해보자 글을 남기게 되었다. java.lang 패키지는 자
dahlia15.tistory.com
그렇기에 데이터값을 비교하기 위해 Objects.equals 또는 contents.equals("끝")으로 작성해야한다.
LinkedHashSet<String> strSet = new LinkedHashSet<>();
while(true){
String contents = sc.nextLine();
if(Objects.equals(contents, "끝")){
break;
}
strSet.add(contents);
}
"끝"이라는 입력값과 동시에 출력이 된다.
Iterator iterator = strSet.iterator();
또한 LinkedHashSet은 get()으로 값을 뽑아올 수 없기에 Iterator 객체를 이용하여 값을 출력해야 한다.
'자바(Java)' 카테고리의 다른 글
[Java] static이란? (클래스변수, 인스턴스변수) (0) | 2023.06.02 |
---|---|
[Java] Object클래스, equals() 알아보기 (0) | 2023.05.26 |
[Java] 추상클래스란? abstract? + extends와 오버라이딩 (0) | 2023.05.24 |
[Java] Scanner 클래스의 메소드 next(), nextLine() 차이 알아보기 + 주의점! (0) | 2023.05.22 |
[Java&eclipse] 너무 나도 쉬운 Java&eclipse 다운로드 (설치 및 환경 설정까지) (0) | 2022.03.13 |