KOSTA DAY12
Java
정규표현식
특정한 규칙(패턴)을 가진 문자열의 집합을 표현하는데 사용하는 표현식 언어
예제
자료구조 클래스
자료구조 : 데이터를 효율적으로 사용할 수 있도록 구조를 만들어서 저장해둔 것
종류
- list(리스트)
- stack(스택) : 제일 처음에 넣은것이 제일 나중에 나옴
- queue(큐) : 처음넣은것이 처음 나옴
- hashtabel(해쉬테이블) : 맵 자료구조
- set(집합) : 엄밀히 말하면 자료구조가 아
ArrayList
배열을 list형으로 구현하는 것
- 데이터 타입이 필요 → 제네릭 선언 : 코드의 일관성/사용 용이
- 크기는 사용에 따라 증가
- 삭제 시, 알아서 자리 채움
- 전체를 순서대로 출력할 때 가장 용이
명령어
- 추가 : .add('') / .add(index, '')
- 크기 : .size()
- 검색 : indexof('')
- 정렬 : Collections.sort(list)
- Comparable : 기본 정렬기준 구현
- Comparator : 다른 기준을 정의하고 구현
LinkedList
인접데이터를 가르키는 식으로 구현
- 이웃해서 저장하지 않고 참조하여 사용하여 연결되어 있다.
- 주소값으로 연결
- 자료의 수정 삭제 시, 용이
Stack
- '후입선출'방식으로 나중에 저장된 데이터가 가장 빨리 인출된다.
Linkedlist<Integer> stack = new LinkedList<>();
stack.addLast(new Integer(10));
stack.addLast(new Integer(20));
stack.addLast(new Integer(30));
while(!stack.isEmpty()){
Integer num = stack.removeLast();
System.out.prinln(num);
}
// 결과 : 30 → 20 → 10
Queue
- '선입선출'방식으로 가장 먼저 삽입된 데이터가 가장 먼저 제거된다.
LinkedList<Integer> queue = new LinkedList<>();
queue.offer(10);
queue.offer(20);
queue.offer(30);
while(!stack.isEmpty()){
Integer num = queue.poll();
System.out.prinln(num);
}
// 결과 : 10 → 20 → 30
- poll 대신 peak을 사용하면 Linkedlist의 인자는 그대로 남아있는다.
Hash(Map)
자료형으로서 대응관계를 쉽게 표현할 수 있도록 해준다.
- Key와 Value라는 것을 한 쌍으로 가진다.
- 순차적으로 해당 요소 값을 구하지 않고 Key를 통하여 Value를 얻는다.
Map<String, String> map = new HashMap<>();
map.put(1, "SK");
map.put(2, "두산");
map.put(3, "넥센");
//크기
System.out.println("요소 개수 : " + map.size());
//제거
if(map.containValue("두산"){
map.remove(2);
}
//전체출력 (Map → Set → Iterator)
Set set = map.entrySet();
Iterator iter = set.iterator();
while(iter.hasNext()){
Map.Entry<String, String> e = (Map.Entry<String, String>)iter.next(); //Map.Entry : 내부인터페이스
System.out.prinln(e.getKey() + e.getValue());
}