Intro::
java 로 코테 언어를 바꾸면서 필요한 클래스들을 정리한 글입니다.
입력 및 출력
BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
br.readLine()
을 통해 한줄로 입력을 받을 수 있다.
StringTokenizer
StringTokenizer st = new StringTokenizer(String s); int a = st.nextToken(); StringTokenizer st = new StringTokenizer(String s, String delimeter);
구분자로 분리된 토큰들을 st.nextToken() 을 통해 하나씩 받아 올 수 있다.(구분자가 없으면 기본 whitespace 들로 구분)
StringBuilder
StringBuilder sb = new StringBuilder();
sb.append(/* 넣을 값 */) 처럼 사용해서 스트링을 빌드해준다. 성능적으로 직접 스트링 연산을 하는 것보다 뛰어나다. BufferedWriter 보다도 미세하게 빠르다고 한다.
Int
int arr; int[] arr = new int[10] Arrays.fill(arr, 0)// 초기화 Arrays.sort(arr)// 오름차순
String
substring(s, e)
String s = "01234" s.substring(0, 4);//0123
시작점부터 제외점 전까지의 문자열을 추출하는 것이다.
HashSet
HashSet<String> hs = new HashSet<>();
HashSet 은 순서를 보장하지 않는 자료구조이다. 정렬이 필요하다면 List 로 변환하여 정렬하면 된다.
ArrayList<String> al = new ArrayList<>(hs); al.sort();
Stack
Stack<Integer> stack = new Stack<>(); stack.push(1);// stack에 인자 집어넣음 stack.peek();// stack의 top 확인 stack.pop();// stack의 top에서 인자를 빼고 반환
Queue
Queue<Integer> queue = new LinkedList<>(); queue.add(1);// 인자 추가 queue.peek();// 가장 앞에 있는 인자 참조 queue.poll();// 가장 앞에 있는 인자 제거후 반환 ((LinkedList<Integer>) q).peekLast();// 가장 뒤에 있는 인자 참조
Deque
Deque<String> dq = new ArrayDeque<>(); dq.addLast();// 뒤쪽에 인자 추가 dq.addFirst();// 앞쪽에 인자 추가 dq.pollLast();// 뒤쪽 인자 제거 후 반환 dq.pollFirst();// 앞쪽 인자 제거 후 반환 dq.peekLast();// 뒤쪽 인자 참조 dq.peekFirst();// 앞쪽 인자 참조
Map
Map<String, Integer> m = new HashMap<>(); m.get("tmp");// 없으면 null m.put("tmp", 1); m.getOrDefault("tmp", 0);// 디폴트 지정가능 for (Map.Entry<String, Integer> entry : m.entrySet()) { String key = entry.getKey(); Integer value = entry.getValue(); }
Priority Queue
// 우선순위 큐 생성 PriorityQueue<Integer> pq = new PriorityQueue<>(); // 요소 추가 pq.add(10); // 요소 조회 (제거하지 않음) pq.peek(); // 출력: 10 // 요소 제거 pq.poll()); // 출력: 10 // 인터페이스 구현을 통한 비교 방법 class Student implements Comparable<Student> { private int score; public Student(String name, int score) { this.score = score; } // compareTo 를 @Override public int compareTo(Student other) { return Integer.compare(this.score, other.score); } } // Comparator 객체를 제공하는 방법 Comparator<Student> scoreComparator = new Comparator<Student>() { @Override public int compare(Student s1, Student s2) { return Integer.compare(s1.getScore(), s2.getScore()); } }; // 람다식 PriorityQueue<Student> pq = new PriorityQueue<>( (s1, s2) -> Integer.compare(s1.getScore(), s2.getScore()));
Loading Comments...