๐ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ
import java.util.*;
import java.io.*;
๐ค ์ ๋ ฅ
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] times = new int[n][2];
for (int i = 0; i < n; i++) {
times[i][0] = sc.nextInt();
times[i][1] = sc.nextInt();
}
String s = sc.next();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
int[][] points = new int[num][2];
StringTokenizer st;
for(int i = 0; i < num; i++){
st = new StringTokenizer(br.readLine(), " ");
points[i][0] = Integer.parseInt(st.nextToken());
points[i][1] = Integer.parseInt(st.nextToken());
}
๐ค Character ๊ด๋ จ ๋ฉ์๋
String str = "abcde";
Character.isLetter(str.charAt(1)) // char ๊ฐ์ด ๋ฌธ์์ด๋ฉด true ์๋๋ฉด false๋ก ๋ฆฌํด
Character.isDigit(str.charAt(1)) // char ๊ฐ์ด ์ซ์์ด๋ฉด true ์๋๋ฉด false
Character.isLetterOrDigit(str.cahrAt(1)) // char ๊ฐ์ด ๋ฌธ์ ํน์ ์ซ์ ์ธ์ง
Character.isAlphabetic(str.charAt(1)) // char ๊ฐ์ด ์ํ๋ฒณ์ด๋ฉด true ์๋๋ฉด false
// ๋์๋ฌธ์ ํ์ธ
Character.isLowerCase('a') // true
Character.isUpperCase('A') // true
// ๋์๋ฌธ์ ๋ณ๊ฒฝ
Character.toUpperCase('a') // A
Character.toLowerCase('A') // a
// ๋ฌธ์ ๊ทธ๋๋ก ์ซ์๋ฅผ ์ป์ ๋
char c = '1';
int n = Character.getNumericValue(c) // 1
๐ค ์์คํค ์ฝ๋
// ์ํ๋ฒณ
๋๋ฌธ์ 'A': 65 ~ 'Z': 90, ์๋ฌธ์ 'a': 97 ~ 'z': 122
๋์๋ฌธ์ ์ฐจ์ด๋ 32 -> ์๋ฌธ์ - 32 = ๋๋ฌธ์
// ์ซ์
'0' : 48 ~ '9': 57
// int ์ char ์ฐ์ฐํ ๋๋ char๋ ์ซ์(์์คํค ๋ฒํธ)๋ก ์ฐ์ฐํจ
public int solution(String str){
int answer = 0;
for(char x : str.toCharArray()){
if( x >= '0' && x <= '9') answer = answer * 10 + (x-'0');
// if( x >= 48 && x <= 57) answer = answer * 10 + (x-48); ๋๊ฐ ๋์ผ
}
return answer;
}
// intํ์ charํ์ ๋ฃ์ผ๋ฉด ์์คํค ๋๋ฒ๊ฐ ๋จ
char c = '1';
int n = c; // int n = (int) c; ๊ฐ์ n์ 49
// charํ int ํ ๋ฃ์ผ๋ฉด ์์คํค ์ฝ๋
int n = 49;
char c = n; // '1'
// ์ซ์ + '0' => ๋ฌธ์
int a = 3;
char b = a + '0'; // b๋ '3'
// ๋ฌธ์ - '0' => ์ซ์
int c = b - '0' // c๋ 3
๐ค String ๊ด๋ จ ๋ฉ์๋
String str = "abcde";
str.length() // str์ ๊ธธ์ด ๋ฐํ
str.isEmpty() // str์ ๊ธธ์ด๊ฐ 0์ด๋ฉด true, ์๋๋ฉด false
str.charAt(2) // ์ธ๋ฑ์ค๋ก ๋ฌธ์ ์ฐพ๊ธฐ, c ๋ฐํ
str.indexOf("c") // ๋ฌธ์๋ก ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค ์ฐพ๊ธฐ, 2 ๋ฐํ
str.lastIndexOf("c") // ๋ฌธ์์ ๋ง์ง๋ง ์ธ๋ฑ์ค ์ฐพ๊ธฐ, 2 ๋ฐํ
str.substring(2, 4) // 2~3 ์์น์ ๋ฌธ์์ด "cd" ๋ฐํ
str.substring(3) // 3๋ถํฐ ๋๊น์ง์ ๋ฌธ์์ด "de" ๋ฐํ
str.replace('b', 'k') // b๋ฅผ k๋ก ๋ณ๊ฒฝ (akcde)
str.replaceAll(๋ณํํ๊ณ ์ ํ๋ ๋ฌธ์์ด ๋๋ ์ ๊ท์, ๋ณํํ ๋ฌธ์ ๊ฐ)
str.replaceAll("[^A-Z]", "") // ์ํ๋ฒณ์ด ์๋ ๊ฒ๋ค์ ""๋ก ์นํ
str.equals("abcde") // str๊ณผ abcde๋ฅผ ๋น๊ตํด์ ๊ฐ์ผ๋ฉด true, ๋ค๋ฅด๋ฉด false
str.equalsIgnoreCase("ABcde") // true ๋์๋ฌธ์ ๋ฌด์ํ๊ณ ๋น๊ต
str.contains("bc") // str์ bc๊ฐ ํฌํจ๋์ด ์์ผ๋ฉด true, ์๋๋ฉด false
str.trim() // str์ ์๋ค ๊ณต๋ฐฑ ์ ๊ฑฐ, ๋ฌธ์์ด ์ฌ์ด ๊ณต๋ฐฑ์ ์ ๊ฑฐ X
str.toLowerCase() // ๋๋ฌธ์๋ฅผ ๋ชจ๋ ์๋ฌธ์๋ก ๋ณ๊ฒฝ
str.toUpperCase() // ์๋ฌธ์๋ฅผ ๋ชจ๋ ๋๋ฌธ์๋ก ๋ณ๊ฒฝ
/*
str๊ณผ abcdd๊ฐ ๊ฐ์ผ๋ฉด 0
str์ด abcdd๋ณด๋ค ์ฌ์ ์์ผ๋ก ์์ด๋ฉด -1
str์ด abcdd๋ณด๋ค ์ฌ์ ์์ผ๋ก ๋ค๋ฉด 1
str๊ณผ abcdd๊ฐ ๋ง์ง๋ง ๋ฌธ์๋ง ๋ค๋ฅด๋ฉด ๋ง์ง๋ง ๋ฌธ์์ ์ฌ์ ์ ์ฐจ์ด ๋ฐํ (์ฌ๊ธฐ์ 1)
*/
str.compareTo("abcdd")
// ์ซ์ or ๋ฌธ์ + ""(๋น ๋ฌธ์์ด) => ๋ฌธ์์ด
String a = 3 + "" ; // "3"
String a = '3' + ""; // ""
// ๋ฌธ์์ด -> ๊ธฐ๋ณธํ
Integer.parseInt("300") // ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํ
Integer.parseInt("10011", 2) // ๋ฌธ์์ด์ ์ซ์ 2์ง์๋ก ์๊ฐํ๊ณ ์ญ์ง์๋ก ๋ณํ 19
// ๊ธฐ๋ณธํ -> ๋ฌธ์์ด
Integer.toString(300) // ์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํ
String.valueOf(300) // ๋ฌธ์์ด๋ก ๋ณํ
char[] s = {'a','b','c'}
String.valueOf(s) // char๋ฐฐ์ด ๋ฌธ์์ด๋ก ๋ณํ "abc"
// ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก ๋ง๋ค๊ณ ์ถ์ ๋
String str = "12345";
String[] Arr = str.split(""); // {1,2,3,4,5}
// ๋ฌธ์์ด์ char ๋ฐฐ์ด๋ก ๋ง๋ค ๋
char[] charArr = str.toCharArray();
๐ค ์ ๊ท์
[A-Z]
[a-z]
[^A-Z]
[0-9]
[^0-9]
๐ค StringBuilder ๊ด๋ จ ๋ฉ์๋
String์ ํ ๋ฒ ๋ง๋ค์ด์ง๋ฉด ๋ฌธ์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ์ ์๋ ๋ณ๊ฒฝ ๋ถ๊ฐํ ํ์ , StringBuilder๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ํ์ ์ด๋ฏ๋ก ๋ฌธ์์ด์ ๋ณ๊ฒฝํด์ผ ํ๋ ๋ฌธ์ ์์๋ StringBuilder๋ฅผ ์ฌ์ฉํ๋ค. (String Buffer๋ ๋๊ธฐํ ๊ฐ๋ฅ StringBuilder๋ ๋ถ๊ฐ๋ฅ. ๋๊ธฐํ๊ฐ ํ์ ์์ ์ StringBuilder๋ฅผ ์ฌ์ฉ ํ๋ ๊ฒ์ด ๋ ํจ์จ์ )
StringBuilder sb = new StringBuilder();
StringBuilder sb2 = new StringBuilder("abc");
sb.append("abc") // ๋ฌธ์์ด ์ถ๊ฐ
sb.insert(2, "kk") // 2 ์์น์ kk ์ฝ์
(→ abkkc)
sb.delete(0, 2) // 0~1 ์์น์ ๋ฌธ์์ด ์ญ์ (→ c)
sb.deleteCharAt(2) // 2 ์์น์ ๋ฌธ์ ์ญ์ (→ ac)
sb.setCharAt(0, 'h') // 0 ์์น์ ๋ฌธ์๋ฅผ h๋ก ๋ณ๊ฒฝ (→ hbc)
sb.reverse() // ๋ฌธ์์ด ๊ฑฐ๊พธ๋ก ๋ค์ง๊ธฐ (→ cba)
sb.setLength(2) // ๋ฌธ์์ด ๊ธธ์ด๋ฅผ 2๋ก ์ค์ (→ ab)
sb.setLength(4) // ๋ฌธ์์ด ๊ธธ์ด๋ฅผ 4๋ก ๋๋ฆผ (→ ๋ค๊ฐ ๊ณต๋ฐฑ์ผ๋ก ์ฑ์์ง)
sb.toString() // String์ผ๋ก ๋ณํ
๐ค Math
// 1. ์ต๋ ์ต์
Math.max(10, 2);
Math.min(10, 2);
// 2. ์ ๋๊ฐ
Math.abs();
// 3. ์ฌ๋ฆผ ๋ด๋ฆผ ๋ฐ์ฌ๋ฆผ
Math.ceil(-3.2); // -3
Math.floor(-3.2); // -4
Math.round(-3.26); // -3 ์ฒซ์งธ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ
// 3-1. ์์ ๋์งธ, ์
์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ ํ๊ณ ์ถ๋ค๋ฉด
double a = 1.23456;
String b = String.format("%.1f", a); // .1f๋ ๋์งธ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ
// 4. ์ ๊ณฑ ์ ๊ณฑ๊ทผ
double a = Math.pow(2, 3); // 2^3 = 8 => doubleํ
int a = (int) Math.pow(2, 3);
Math.sqrt(4); // 2
๐ค Array ๊ด๋ จ ๋ฉ์๋
String[] arr1 = new String[5];
int[] arr2 = {1, 2, 3};
int N = 3;
int[] arr3 = new int[N];
int arr[] = {10, 8, 11, 2, 3, 0};
// ๋ฐฐ์ด์ ArrayList๋ก ๋ณํ
List list = Arrays.asList(arr1); // ์ฝ๊ธฐ ์ ์ฉ
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(arr1));
// ๋ฐฐ์ด์ ํน์ ๋ฒ์ ์๋ฅด๊ธฐ
int tmp[] = Arrays.copyOfRange(arr1, 0, 3);
// ์ค๋ฆ์ฐจ์ {0, 2, 3, 8, 10, 11}
Arrays.sort(arr1);
// ๋ด๋ฆผ์ฐจ์ {11, 10, 8, 3, 2, 0}
Arrays.sort(arr1, Collections.reverseOrder());
// ์ผ๋ถ๋ง ์ ๋ ฌ {2, 8, 11, 10, 3, 0} (0~4๋ง ์ ๋ ฌ)
Arrays.sort(arr1, 0, 4)
// ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ฉด binary search๋ก ํน์ ๊ฐ์ ์ฐพ์ ์ ์๋ค.
Arrays.binarySearch(arr1, 2);
// 2์ฐจ์ ๋ฐฐ์ด ํ ์ ๋ ฌ
Arrays.sort(times, new Comparator<int[]>() {
// ์ ๋ ฌ ๊ธฐ์ค ํจ์๋ง ์ํ๋๋๋ก ๋ณ๊ฒฝ
@Override
public int compare(int[] o1, int[] o2) { // ํ์ด ๋ค์ด์ด
if(o1[1] == o2[1]) return o1[0] - o2[0];
else return o1[1] - o2[1];
}
});
/*
๋ฐํ ๊ฐ์ด ์์์ด๋ฉด ์๋ฆฌ๋ฅผ ๋ฐ๊ฟ์ฃผ๊ณ , ์์์ด๋ฉด ์๋ฆฌ๋ฅผ ๋ฐ๊ฟ์ฃผ์ง ์์
-> ์์ ์์๋ ๋๋ฒ์งธ ์ด์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์, ๊ฐ์ด ๊ฐ๋ค๋ฉด ์ฒซ๋ฒ์งธ ์ด์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์
*/
// Arrays ํด๋์ค์ sort static method
static void sort(Object[] objArr, Comparator c){
for(int i = 0; i < objArr.length-1; i++){
for(int j = 0; j < objArr.length-1; j++){
Object tmp = null;
if(c.compare(objArr[j], objArr[j+1]) > 0){ // ๋น๊ต
tmp = objArr[j]; // ์๋ฆฌ๋ฐ๊ฟ
objArr[j] = objArr[j+1];
objArr[j+1] = tmp;
}
}
}
}
// ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ๋์ ๋ณต์
int[] tmp = arr.clone();
// ๋ฐฐ์ด์์ ์ต๋๊ฐ
int max = Arrays.stream(arr).max().getAsInt();
// ๋ฐฐ์ด์์ ์ต์๊ฐ
int min = Arrays.stream(arr).min().getAsInt();
// ๋ฐฐ์ด ๋ชจ๋ ๊ฐ ํฉ
int sum = Arrays.stream(arr).sum();
๐ค ArrayList ๊ด๋ จ ๋ฉ์๋
ArrayList<String> list = new ArrayList<String>();
list.add("์์ธ") // list์ ๊ฐ์ฅ ๋ค์ ์์ธ ์ฝ์
list.add(1, "๋์ ") // 1 ์์น์ ๋์ ์ฝ์
list.addAll(list2) // list์ ๋ค์ list2์ ๋ชจ๋ ๊ฐ ์ฝ์
list.get(0) // 0 ์์น์ ๊ฐ ๋ฐํ (์์ธ)
list.set(0, "๋๊ตฌ") // 0 ์์น์ ๊ฐ์ ๋๊ตฌ๋ก ๋ณ๊ฒฝ
list.indexOf("๋๊ตฌ") // ๋๊ตฌ์ ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค ๋ฐํ
list.lastIndexOf("๋๊ตฌ") // ๋๊ตฌ์ ๋ง์ง๋ง ์ธ๋ฑ์ค ๋ฐํ
list.remove(0) // 0 ์์น์ ๊ฐ ์ญ์
list.remove("๋๊ตฌ") // ์ฒซ๋ฒ์งธ ๋๊ตฌ ์ญ์
list.removeAll(list2) // list์์ list2์ ๋ค์ด์๋ ๋ชจ๋ ๊ฐ์ ์ญ์
list.retainAll(list2) // list์์ list2์ ๋ค์ด์๋ ๊ฐ์ ์ ์ธํ ๋ชจ๋ ๊ฐ์ ์ญ์
list.clear() // ์ ์ฒด ๊ฐ ์ญ์
list.isEmpty() // ๊ธธ์ด๊ฐ 0์ด๋ฉด true, ์๋๋ฉด false
list.size() // ๊ธธ์ด
list.contains("์์ธ") // ์์ธ์ด list์ ์์ผ๋ฉด true, ์์ผ๋ฉด false
list.containsAll(list2) // list์ list2์ ๋ชจ๋ ๊ฐ์ด ํฌํจ๋์ด ์์ผ๋ฉด true
list.removeIf(k -> k % 2 != 0) // ๋๋ค์์ผ๋ก ํ์๋ฅผ list์์ ๋ชจ๋ ์ ๊ฑฐ
// ๋ฌธ์์ด ๋ฐฐ์ด์ List๋ก ๋ณํ
String[] temp = "abcde";
ArrayList<String> list = new ArrayList<>(Arrays.asList(temp));
// List๋ฅผ ๋ฌธ์์ด ๋ฐฐ์ด๋ก ๋ณํ
ArrayList<String> list = new ArrayList<>();
String[] temp = list.toArray(new String[list.size()]);
// ์ ์ ๋ฐฐ์ด์ List๋ก ๋ณํ
int[] temp = { 1123, 1412, 23, 44, 512132 };
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(temp));
// List๋ฅผ ์ ์ ๋ฐฐ์ด๋ก ๋ณํ
ArrayList<Integer> list = new ArrayList<>();
int[] temp = list.stream().mapToInt(i->i).toArray();
๐ค Collections ๊ด๋ จ ๋ฉ์๋
int[] arr = { 1123, 1412, 23, 44, 512132 };
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(arr));
Collections.max(list) // list์ ์์ ์ค ๊ฐ์ฅ ํฐ ๊ฐ ๋ฐํ
Collections.min(list) // list์ ์์ ์ค ๊ฐ์ฅ ์์ ๊ฐ ๋ฐํ
Collections.sort(list) // list ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
Collections.sort(list, Collections.reverseOrder()) // list ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
Collections.reverse(list) // list ์ญ์ ์ ๋ ฌ { 512132, 44, 23, 1412, 1123 }
Collections.frequency(list, 23) // list ๋ด์ 23์ ๊ฐฏ์ ๋ฐํ
Collections.binarySearch(list, 44)
// ์ต์ด๋ก ๊ฒ์๋ 44์ ์ธ๋ฑ์ค 1 ๋ฐํ
// ์์ผ๋ฉด 44๋ณด๋ค ํฐ ์ต์ด์ ์์น 2๋ฅผ ์ฐพ์์ -1์ ๊ณฑํ๊ณ 1์ ๋นผ์ ๋ฐํ (-3)
๐ค Stack
Stack<Integer> stack = new Stack<>();
stack.push(1) // ๊ฐ ์ถ๊ฐ
stack.pop() // Stack top ๊บผ๋ด๊ณ ๋ฐํ
stack.clear() // ๊ฐ ์ ์ฒด์ญ์
stack.size() // ํฌ๊ธฐ ๋ฐํ
stack.isEmpty() // ๋น์ด์์ผ๋ฉด true, ์๋๋ฉด false
stack.contains(1) // 1์ ํฌํจํ๊ณ ์์ผ๋ฉด true, ์๋๋ฉด false
stack.peek() // Stack top ์ถ๋ ฅ (์ ๊ฑฐ X), ๋น์ด์์ผ๋ฉด null ๋ฐํ
stack.get(0) // stack์ ๋ฐฐ์ด, get์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅ -> ์ฒซ๋ฒ์งธ ๋ฐ์ดํฐ ๋ฐํ 1
๐ค Queue
Queue<Integer> queue = new LinkedList<>();
queue.add(1) // ๊ฐ ์ถ๊ฐ
queue.offer(2) // ๊ฐ ์ถ๊ฐ
queue.poll() // ์ฒซ ๋ฒ์งธ ๊ฐ ๊บผ๋ด๊ณ ๋ฐํ, ๋น์ด์์ผ๋ฉด null ๋ฐํ
queue.remove() // ์ฒซ ๋ฒ์งธ ๊ฐ ์ ๊ฑฐ
queue.clear() // ๊ฐ ๋ชจ๋ ์ญ์
queue.peek() // ์ฒซ ๋ฒ์งธ ๊ฐ ์ถ๋ ฅ (์ ๊ฑฐ X)
queue.contains(1) // 1์ ํฌํจํ๊ณ ์์ผ๋ฉด true, ์๋๋ฉด false
๐ค PriorityQueue
PriorityQueue<Integer> pq = new PriorityQueue<>();
// ๊ธฐ๋ณธ์ ๋ฎ์ ์ซ์๊ฐ ์ฐ์ ์์๋ฅผ ๊ฐ๋๋ค.
// ๋์ ์ซ์๊ฐ ์ฐ์ ๋๊ฒ ํ๋ ค๋ฉด () ์์ Collections.reverseOrder() ์์ฑ
pq.add(1) // ๊ฐ ์ถ๊ฐ
pq.offer(1) // ๊ฐ ์ถ๊ฐ
pq.poll() // ์ฒซ ๋ฒ์งธ ๊ฐ ๋ฐํ, ๋น์ด์์ผ๋ฉด null ๋ฐํ
pq.remove() // ์ฒซ ๋ฒ์งธ ๊ฐ ์ ๊ฑฐ
pq.clear() // ๊ฐ ๋ชจ๋ ์ญ์
pq.peek() // ์ฒซ ๋ฒ์งธ ๊ฐ ์ถ๋ ฅ (์ ๊ฑฐ X)
๐ค HashSet
์ค๋ณต ํ์ฉํ์ง ์์ ๋๋ Set ์ฌ์ฉ
- HashSet : ์ค๋ณต์ ํ์ฉํ์ง ์๋ ๊ตฌ์กฐ. ์์๊ฐ ์๊ณ ์ ๋ ฌ๋ ์ ํจ.
- LinkedHashSet : ์ค๋ณต์ ํ์ฉํ์ง ์๋ ๊ตฌ์กฐ. ์ฝ์ ๋ ์์๋๋ก ์์๋ฅผ ๊ด๋ฆฌํจ.
- TreeSet : ์ค๋ณต์ ํ์ฉํ์ง ์๋ ๊ตฌ์กฐ. ์ด์งํ์ํธ๋ฆฌ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฏ๋ก ์ ๋ ฌ ํจ.
HashSet<Integer> set = new HashSet<>();
set.add(1) // ๊ฐ ์ถ๊ฐ
set.remove(1) // ๊ฐ์ด 1์ธ ๋ฐ์ดํฐ ์ญ์
set.removeAll(set2) // set์ ๋ฐ์ดํฐ ์ค set2์ ๋ค์ด์๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ญ์
set.retainAll(set2) // set์ ๋ฐ์ดํฐ ์ค set2์ ๋ค์ด์์ง ์์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ญ์ (set2 ๋ฐ์ดํฐ๋ง ๋จ๊ธฐ๊ธฐ)
set.clear() // ๋ชจ๋ ๋ฐ์ดํฐ ์ญ์
set.size() // ํฌ๊ธฐ ๋ฐํ
set.contains(1) // ๊ฐ 1์ด ์์ผ๋ฉด true, ์์ผ๋ฉด false
// ๊ฐ ์ถ๋ ฅ
// ๋ฐฉ๋ฒ 1: get ๋ฉ์๋๊ฐ ์์ผ๋ฏ๋ก ์์์ ์ ๊ทผํ๋ ค๋ฉด ์ดํฐ๋ ์ดํฐ ์ฌ์ฉ
Iterator iter = set.iterator();
while (iter.hasNext())
System.out.println(iter.next());
// ๋ฐฉ๋ฒ 2: for-each๋ฌธ์ผ๋ก ์์์ ์ ๊ทผ
for (String item: set)
System.out.println(item);
๐ค TreeSet
์ค๋ณต ํ์ฉํ์ง ์๊ณ ์ ๋ ฌ ํ์ํ ๋ ์ฌ์ฉ
// ์ ์ธ
TreeSet<Integer> ts = new TreeSet<>(); // ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
TreeSet<Integer> ts = new TreeSet<>(Collections.reverseOrder()); // ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
// ์ถ๊ฐ
ts.add(5);
ts.add(2);
ts.add(1);
ts.add(3); // [1,2,3,5]
// ๊ฐ ๋ฐํ
ts.first(); // ์ฒซ ๋ฐ์ดํฐ ๋ฐํ 1
ts.last(); // ๋ง์ง๋ง ๋ฐ์ดํฐ ๋ฐํ 5
// ์ญ์
ts.remove(5); // 5 ์ญ์ [1,2,3]
ts.pollFirst(); // ์ฒซ ๋ฐ์ดํฐ ์ญ์ [2,3]
ts.pollLast(); // ๋ง์ง๋ง ๋ฐ์ดํฐ ์ญ์ [2]
ts.clear(); // ์ ์ฒด ์ญ์ []
// ํฌ๊ธฐ
ts.size()
// ์ถ๋ ฅ (์ HashSet์ฐธ๊ณ )
1. iterator ์ฌ์ฉ
2. for-each ๋ฌธ์ผ๋ก ์์์ ์ ๊ทผ
๐ค HashMap
- HashMap: <key, value>์. ํน์ ๊ท์น ์์ด ์ถ๋ ฅ๋จ.
- LinkedHashMap: <key, value>์. ํค๊ฐ์ด ์ ๋ ฅ์์ผ๋ก ์ ๋ ฌ๋์ด ์ถ๋ ฅ๋จ.
- TreeMap: <key, value>์. ํค๊ฐ์ด ์ํ๋ฒณ์(์ค๋ฆ์ฐจ์)์ผ๋ก ์ ๋ ฌ๋ ์ํ๋ก ์ถ๋ ฅ๋จ.
// ์ ์ธ
HashMap<Integer, String> map = new HashMap<>();
HashMap<String, String> map = new HashMap<>();
// ์
๋ ฅ (key, value)
map.put(1, "์ฌ๊ณผ")
map.put(2, "๋ฐ๋๋")
map.put(1, "ํฌ๋") // key 1์ด ์ด๋ฏธ ์กด์ฌํ๋ฉด key 1์ value๊ฐ "ํฌ๋"๋ก ๋์ฒด
/*
getOrDefult(Object key, V defaultValue)
key: ๊ฐ์ ๊ฐ์ ธ์์ผ ํ๋ ์์์ ํค
defaultValue: ์ง์ ๋ ํค๋ก ๋งคํ๋ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ ๋ฐํ๋์ด์ผ ํ๋ ๊ธฐ๋ณธ ๊ฐ
๋ฐํ๊ฐ: ์ฐพ๋ key๊ฐ ์กด์ฌํ๋ฉด ํด๋น key์ ๋งคํ๋์ด ์๋ ๊ฐ์ ๋ฐํ, ์๋๋ dfaultValue๋ฅผ ๋ฐํ
*/
hm.put(key, hm.getOrDefault(key,0)+1)
// key๋ก value๊ฐ์ ธ์ค๊ธฐ
map.get(1) // "์ฌ๊ณผ"
// ์ญ์
map.remove(1) // key ๊ฐ์ผ๋ก๋ง ์์ ์ญ์ ๊ฐ๋ฅ
map.clear() // ์ ์ฒด ์ญ์
// ์กด์ฌ ์ ๋ฌด ํ์ธ
map.containsKey(1) // key ๊ฐ ์ค 1์ด ์์ผ๋ฉด true, ์์ผ๋ฉด false
map.containsValue("์ฌ๊ณผ") // value ์ค "์ฌ๊ณผ"๊ฐ ์์ผ๋ฉด true, ์์ผ๋ฉด false
// ํฌ๊ธฐ
map.size() // 3
// equals
map1.equals(map2) // map1๊ณผ map2๋ ๋์ผํ (key, value)์์ ๊ฐ์ง๋ฉด true, ์๋๋ฉด false
// ๊ฐ ์ถ๋ ฅ
// ๋ฐฉ๋ฒ 1
for (Integer key: map.keySet())
System.out.println(i + map.get(key)); // 1 ์ฌ๊ณผ
// ๋ฐฉ๋ฒ 2: key์ value๊ฐ ๋ชจ๋ ํ์ํ ๋ ์ฃผ๋ก ์ฌ์ฉ
for (Entry<Integer, String> entry: map.entrySet())
System.out.println(entry.getKey() + entry.getValue()); // 1 ์ฌ๊ณผ
source
'Language > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ2 (๋คํ์ฑ, ์ถ์ํด๋์ค, ์ธํฐํ์ด์ค) (0) | 2022.12.28 |
---|---|
[Java] ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ2 (์์, ์ค๋ฒ๋ผ์ด๋ฉ, package, ์ ์ด์) (0) | 2022.12.24 |
[Java] ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ1 (0) | 2022.12.14 |
[Java] JVM, JRE, JDK ๊ฐ๋จ ์ ๋ฆฌ (0) | 2022.11.13 |
[Java] ์๋ฐ๋? ์๋ฐ์ธ์ด์ ํน์ง (1) | 2022.11.13 |