알고리즘을 공부하면서 사용했던 자료구조들을 정리해보려고 합니다.
추가 사항이 생기면 업데이트 하도록 하겠습니다!
ArrayList - JAVA API
: 배열처럼 크기를 신경쓰지 않아도 되는 자료구조
- 생성
ArrayList<Integer> lists = new ArrayList<>();
- 추가 (add)
lists.add(10); // param : index(0~)
- 삭제 (remove)
lists.remove(2); // param : index(0~)
- 반복 (for)
for( int iValue : lists) {
System.out.println(iValue);
}
BufferedReader
- 사용하는 이유
InputStreamReader는 입력을 character로 읽어들인다. Then 문자열로 입력받으려면 불편하다.
So 생겨난것이 BufferReader 이다.
cf> BufferedReader : InputStreamReader에 버퍼링 기능을 추가한것으로 데이터를 사용자가 요청할때마다 매번 읽어오기 보다는 일정량사이즈로 한번에 읽어온 후 버퍼에 보관한다. 그리고 사용자가 요구할때 버퍼에서 읽어오게 한다.
결국, BufferedReader를 이용하면 속도를 향상시키고 시간의 부하를 줄일수 있게 된다.
- 생성
BufferedReader br
= new BufferedReader
(new InpuStreamReader(System.in));
- br.readLine()
String 형태로 개행문자(엔터)까지 입력받아옴
cf> int형태로 받고 싶은면?
Integer.parseInt(br.readLine());
StringBuilder
1 2 3 4 5 6 7 8 | // 사용법 예시 StringBuilder sb = new StringBuilder(); while(!rst.isEmpty()){ sb.append(rst.pop()); } System.out.println(sb); | cs |
Array
1 2 3 4 | // 배열 Int[][] dp = new int[col][row] // col:5; row:2 => 11111 11111 | cs |
Queue
- 한쪽 끝에서만 자료를 넣고 다른 한쪽 끝에서만 뺄 수 있는 자료구조 입니다.
- 먼저 넣은 것이 가장 먼저 나오기 때문에 First In First Out(FIFO) 라고도 합니다.
- 생성시에 LinkedList의 생성자를 호출한다.
- offer : 큐에 자료를 넣는 연산
- Poll : 큐에서 자료를 빼는 연산
- Front : 큐의 가장 앞에 있는 자료를 보는 연산
- Back : 큐의 가장 뒤에 있는 자료를 보는 연산
- Empty : 큐가 비어있는지 아닌지를 알아보는 연산
- Size : 큐에 저장되어있는 자료의 개수를 알아보는 연산
- Java의 경우에는 java.util.Queue를 사용하는 것이 좋다.
'언어 > java' 카테고리의 다른 글
[모던자바 인액션]#4 스트림 소개 (0) | 2021.01.13 |
---|---|
[JAVA] String으로 입력된 날짜의 차이 구하기 (0) | 2019.10.25 |
[날짜 차이] 현재 날짜와 특정 날짜 지났는지 check (0) | 2019.05.28 |
Scanner 정리 (0) | 2018.11.29 |
jar / war 정리 (0) | 2018.07.08 |