Collection은 객체를 모아놓는 것. 배열보다 훨씬 더 많은 기능이 있고 특징이 다르다.
삭제, 삽입, 동적 할당, 크기 변동, 다형성 적용 등
#List <= 객체를 모음 저장하며 index와 순서 가지며 중복 저장을 허용함
#ArrayList <= 배열의 특성을 가지고 있으며 크기가 원하는대로 변함
->인덱스때문에 속도측면에서 느리다. ex)값이 중간에 삭제/추가되는 경우
#LinkedList <= 연결리스트, ArrayList보다 빠르다
https://www.nextree.co.kr/p6506/ (자료 참조)
-Generic을 통해서 원하는 타입을 모아놓을 수 있다.
List<String> nick = new ArrayList<>();
<객체 추가 메서드>
nick.add("멍멍이");
<인덱스 참조 메서드>
nick.get(1);
<리스트 크기 반환>
nick.size();
<인덱스 수정 메서드>
nick.set(2, "Something");
<객체 존재유무>
nick.contains("Something");
<전체삭제>
nick.clear();
<비어있는지>
nick.isEmpty();
<한번에 객체 많이 추가하기>
Collections.addAll(부모(super)리스트, 값, 값, 값, 값);
<등장횟수 구하기>
Collections.frequency(super, 값);
Collections.min, max (최대최소)
<정렬>
Collections.sort
<무작위>
Collection.shuffle
<원하는 값으로 초기화>
Collections.fill
#Set <= 집합을 구현해놓은 클래스, 중복 허용하지 않음
#Hash
- 어떤 값을 넣었을 때 전혀 예측하지 못할 값이 생성되어야 하는 알고리즘.
- 예측할 수 없는 값을 이용하기 때문에 정렬이 불가능.
- 생성된 값으로 원래 값을 찾는 것도 불가능에 가깝다.
- 다시 원래 값으로 돌아갈 수 없는 단방향성 알고리즘.
- 속도가 빠르고 보안성이 뛰어난 알고리즘.
=============================
LinkedList
//LIFO -> last in first out -> stack
//push, pop, peek
list.push("김뽀삐"); //앞에서부터 추가
System.out.println(list);
System.out.println(list.pop()); //삭제하면서 읽기
System.out.println(list);
System.out.println(list.peek()); //삭제하지 않으면서 읽기
System.out.println(list);
//FIFO -> first in first out -> Queue
//offer, poll, peek
list.offer("a"); //마지막에 추가
list.offer("b");
list.offer("c");
System.out.println(list);
System.out.println(list.poll());
System.out.println(list);
System.out.println(list.peek()); //삭제하지 않고 읽기
System.out.println(list);
'백엔드' 카테고리의 다른 글
Spring MVC 구조 흐름에 대해 (0) | 2023.02.02 |
---|---|
자바 영문자 숫자 한글 등의 정규식 패턴 표현 (0) | 2021.11.25 |
JRE, JDK란? (+Build Path, 실행 순서...) 복잡해진 메모 게시글. (0) | 2021.11.14 |
STS3와 STS4의 차이 (Spring Tool Suite) (0) | 2021.11.14 |
운영체제란? (0) | 2021.11.11 |
댓글