- ArrayList
ArrayList 역시 List 인터페이스를 구현한 것이다.
값을 더하기 위해
lists.add("한국")
이런 식으로 값을 더할 수 있다.
- ListIterator
Iterator 인터페이스를 상속받은 인터페이스
양방향으로 이동 가능하다
hasNext는 순서대로 나오지만
hasPrevious는 역순으로 출력된다.
- Map
Map은 인터페이스이며 Hashtable, HashMap 클래스가 구현한다.
Hashtable은 Vector처럼 동기화를 지원하기 때문에 속도가 느리며
HashMap은 ArrayList와 같이 동기화 지원하지 않아 빠르다.
Iterator가 없기 때문에 Key의 Set에서 가져온다.
- Key
Key는 중복값을 가질 수 없다 (중복을 허용하지 않는 인터페이스 Set때문)
중복이 될 경우, 마지막으로 입력한 값이 저장된다. 즉, 수정의 기능을 담는다.
put(key,value) : 데이터 추가
get(key,value) : 데이터 읽기
public class Test{
public static final String[] tel = {"010-111","010-222","010-333","010-111"}; //key
public static final String[] name = {"가","나","다","라"}; //value
public static void main(String[] args) {
Hashtable<String, String> h = new Hashtable<>();
for(int i=0;i<name.length;i++) {
h.put(tel[i], name[i]);
} System.out.println(h);
key와 value의 값을 넣어주며 tel은 key이다.
Hashtable<key의 자료형, value의 자료형>. -> 오른쪽의<>는 안써줘도 문제 없다.
put에 값을 각각 넣어주는 이유는 key,value의 저장공간이 다르기 때문이다.
출력 시, "010-111"에는 "다"로 나타난다.
그 이유는 위에서 key는 중복일 경우 마지막 값으로 수정되는 것처럼 앞서 나온 "가"가 아닌 마지막 값 "다"가 출력되게 된다.
=> key를 주면 value를 가져온다!
또한 String은 원래 equals메소드를 통해 값을 비교하지만
비교값이 null일 때에만 ==로 가능하다!
null은 옆의 equals("")와 같은 의미이다.
containsKey : key가 존재하는지 확인
+ containsValue(value값) : 값(value)이 있는지 확인
+ remove(key값) : 삭제
iterator는 set에서 가져온 것이기에 KeySet을 사용한다.
while문 내에서는 h에서 가져온 값을 it에 넣어준다.
next를 통해 key를 읽으며
get은 데이터를 읽기 때문에 값인 value를 읽는다. 괄호 안엔 key가 들어감으로써 value를 알 수 있다.
물론 코드에서 작성한 key와 value는 쉽게 보기 위해 단순히 설정한 변수 이름이다. (진짜 key,value 자체가 아님!)
- Stack
stack 말 그대로 '쌓다'이다.
선언은 Stack을 넣어서 입력한다.
값을 넣는 순서대로 아래부터 쌓인다고 생각하면 쉽다.
통 안에서 맨 밑부터 서울->부산->대구순인 것이다.
push : 값 넣음
empty : 비어있는지 확인
!는 뒤의 의미의 반대이다. 즉, while문은 비어있지않을 때까지 반복하게 된다.
pop : 마지막 값부터 나온다. "대구"부터 값이 출력되는 것이다.
- Queue
Queue 클래스는 선언할 때 LinkedList를 활용한다. (모두 import되어야 한다!)
위의 push와 달리, offer로 값을 추가한다. add도 가능하다.
peek : 제일 먼저 저장된 값 읽음 (확인 시)
poll : 값을 꺼냄(반환)
List<String> lists2 = new LinkedList<>();
lists2.subList(2, 5).clear();
LinkedList는 Queue뿐만 아니라 List도 구현한다.
subList(2, 5).clear는 인덱스 앞자리숫자번호부터 (뒷자리 숫자-1)인덱스 번호까지 지워진다.
즉, 2번부터 (5-1=4) 4번까지 지워진다.
뒷자리에서 -1해줘야 한다는 것을 주의하자!
'개발 교육 TIL > back-end' 카테고리의 다른 글
[Java] Thread- 단일/다중스레드, 작성법, 우선순위 (0) | 2022.01.11 |
---|---|
[Java]Box클래스, Exception, try~catch (0) | 2022.01.11 |
[Java] 내부클래스, Collection Framework, Iterator, Vector (0) | 2022.01.07 |
[Java] 형변환, upcast, 인터페이스 (0) | 2022.01.06 |
[Java] Wrapper 클래스, Calendar 달력 만들기, singleton, 추상클래스 (0) | 2022.01.05 |