Java를 이용한 코테 대비 자주 까먹는 코드 정리
// Iterator
Iterater<> iter = 변수명.iterator(); 생성
iter.hasNext()와 iter.next() 사용이 중요
// ListIterator
ListIterator<> iter = 링크드리스트변수명.listIterator()로 생성
Iterator와 기본적인 함수는 동일한데
ListIterator.hasPrevious()와 ListIterator.previous() 함수 사용 가능
// HashMap 값 출력
java.util.Map.Entry
for (Entry<Integer, String> entry : map.entrySet()){
System.out.println("[Key]: " + entry.getKey() + " [Value]:" + entry.getValue());
}
for(Integer i : map.keySet()){ //저장된 key값 확인
System.out.println("[Key]:" + i + " [Value]:" + map.get(i));
}
// Hashmap value 내림차순 정렬
System.out.println("------value 내림차순------");
Collections.sort(keySetList, (o1, o2) -> (hashmap.get(o2).compareTo(hashmap.get(o1))));
for (Integer key : keySetList) {
System.out.println("key : " + key + " / " + "value : " + hashmap.get(key));
}
// length 정리
[ ] 배열: length
String: length()
ArrayList: size()
// String 다루는 법 정리
String 수정할 때는 String보다 StringBuilder가 훨씬 좋다(시간, 메모리 모든 측면)
StringBuilder answer = new StringBuilder();
추가
answer.append("이거 맨끝에추가");
answer.insert(0,"0번째 인덱스에 이 String추가");
삭제
answer.delete(start, end); end인덱스는 미포함
대체
answer.replace(start, end, "대체String");
추출
answer.toString();
// forEach() 함수, forEach for문
fruits.forEach(item -> System.out.println("item : " + item));
for(String str : fruits){
}
// 리스트 -> 배열
Integer[] arr = new Integer[tempArr.size()];
arr = tempArr.toArray(arr);
Integer[] arr = tempArr.toArray(new Integer[tempArr.size()]);
// Java Comparator와 Comparable
- Comparable는 public int compareTo(T t1)
return this.x - t.x -> 오름차순
사용: 주로 임의로 만든 클래스에 implements해서 compareTo 함수 구현
Collections.sort(어레이)
- Comparator는 public int compare(T t1, T t2) 함수 사용
return t1.x - t2.x -> 오름차순
사용: Collections.sort(nowArr, new Comparator<Schedule>() { })
람다함수로 사용
https://ggp03016.tistory.com/13
// Arrays 정렬
import java.util.Arrays;
Arrays.sort(배열)
Arrays.sort(배열, Collections.reverseOrder());
// 크루스칼, 플로이드 와샬
크루스칼
1. 간선의 비용이 낮은 순으로 선택
2. 선택 후 싸이클이 발생하는지 확인
-> 발생하면 그냥 다른 간선 찾고
-> 발생하지 않으면 넘어감
3. 도착 노드를
일차원 배열, 출발 노드 기준 인덱스에 최소값 갱신시키는 것
플로이드 와샬
2차원 배열 사용
// LinkedList와 Queue
<<Interface>> Queue
-> LinkedList
-> PriorityQueue
구조임
// 역순 우선순위 큐 생성
PriorityQueue<> queue = new PriorityQueue(Collections.reverseOrder());