내가 보려고 씀
⭐ 문법
1. import
// 처음 상단에 넣고 시작하기
import java.util.*;
import java.io.*;
(클래스명) throws IOException () {
...
}
2. 입출력
💡BufferedReader는 엔터만 경계로 인식 --> 받은 데이터 String으로 고정 (다른 타입 입력 받을 시 형변환!)
💡 BufferedReader를 사용하는 것이 Scanner를 사용하는 것보다 빠름
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 구분자 이용 (공백 단위)
String[] input = br.readLine().split(" ");
3. StringTokenizer
// 1. 띄어쓰기 기준으로 문자열을 분리
StringTokenizer st = new StringTokenizer(문자열);
// 2. 구분자를 기준으로 문자열을 분리
StringTokenizer st = new StringTokenizer(문자열, 구분자);
⭐ 자바 내장 함수
1. split()
String str = "abcdef@gaaadfwef@fadsafgh";
String[] strAry = str.split("@");
for(String s : strAry)
System.out.println(s);
2. Math
int answer = 1; // answer = 1로 초기화
answer = Math.max(answer, 100); // answer과 100 중 더 큰 수를 answer에 저장
// answer : 100
3. toCharArray()
// 문자열을 char형 배열로 바꿔줌. 반환 되는 배열의 길이는 문자열의 길이와 같음
// 1. 문법
public char[] toCharArray()
// 2. 예시
public class Test {
public static void main(String[] args) {
String str = "hello world";
char[] arr = str.toCharArray();
for(int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
// 출력
h e l l o w o r l d
4. String.valueOf()
// 문자열 형 변환
int n = 12345;
System.out.print(String.valueOf(n);
// 출력 : 12345 (문자열)
5. substring()
String str = "ABCDEF";
String substring = str.substring(0, 2);
System.out.println("substring: " + substring); // substring: AB
6. Collections : 출처
int[] arr = { 1123, 1412, 23, 44, 512132 };
List<Integer> list = new ArrayList<>(Arrays.asList(arr));
Collections.sort(list, Collections.reverseOrder()) // list 내림차순 정렬
// 예제 2
List<String> list = new ArrayList<>();
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에서 모두 제거
7. Integer.parseInt(String s)
int n = Integer.parseInt("1004"); // Integer.parseInt("1004", 10); 동일
int n8 = Integer.parseInt("1004", 8); // 1004를 8진수로 변환 후 n8 저장
8. 10진수 -> n진수 : 출처
// 10진수를 제외한 나머지 진수는 String으로 받아야 한다. -> int는 전부 10진수로 인식
public class Solution {
public static void main(String[] args) {
// 테스트를 위한 10진수 값 = 25
int a = 25;
System.out.println("10진수 -> 2진수");
System.out.println(Integer.toBinaryString(a)); // 11001
System.out.println(Integer.toString(a,2)); // 11001
System.out.println("10진수 -> 3진수");
System.out.println(Integer.toString(a,3)); // 221
System.out.println("10진수 -> 4진수");
System.out.println(Integer.toString(a,4)); //121
System.out.println("10진수 -> 5진수");
System.out.println(Integer.toString(a,5)); // 100
System.out.println("10진수 -> 6진수");
System.out.println(Integer.toString(a,6)); // 41
System.out.println("10진수 -> 7진수");
System.out.println(Integer.toString(a,7)); // 34
System.out.println("10진수 -> 8진수");
System.out.println(Integer.toOctalString(a)); // 31
System.out.println(Integer.toString(a,8)); // 31
System.out.println("10진수 -> 16진수");
System.out.println(Integer.toString(a,16)); // 19
System.out.println(Integer.toHexString(a)); // 19
}
}
9. Integer.toBinaryString(int n) : 출처
// 정수값을 2진수로 표시
// AND 연산 (&) : 두 수의 각자리수에 대해 둘다 1일경우 1로 변환
public class bit {
public static void main(String[] args) {
int a = 9;
int b = 11;
System.out.println(Integer.toBinaryString(a)); //바이너리로 변환
System.out.println(Integer.toBinaryString(b)); //바이너리로 변환
System.out.println("10진수 : " + (a & b));
System.out.println("2진수 : " + Integer.toBinaryString(a & b));
}
}
// 결과
/*
1001
1011
10진수 : 9
2진수 : 1001
*/
// OR 연산 ( | ) : 두 수의 각자리수가 하나만 1이면 1로 변환
public class bit {
public static void main(String[] args) {
int a = 9;
int b = 11;
System.out.println(Integer.toBinaryString(a)); //바이너리로 변환
System.out.println(Integer.toBinaryString(b)); //바이너리로 변환
System.out.println("10진수 : " + (a | b));
System.out.println("2진수 : " + Integer.toBinaryString(a | b));
}
}
// 결과
/*
1001
1011
10진수 : 11
2진수 : 1011
*/
// XOR 연산 (^) : 두 수의 각 자리수가 다른 경우 1로 변환
public class bit {
public static void main(String[] args) {
int a = 9;
int b = 11;
System.out.println(Integer.toBinaryString(a)); //바이너리로 변환
System.out.println(Integer.toBinaryString(b)); //바이너리로 변환
System.out.println("10진수 : " + (a ^ b));
System.out.println("2진수 : " + Integer.toBinaryString(a ^ b));
}
}
// 결과
/*
1001
1011
10진수 : 10
2진수 : 2
*/
⭐ HashMap : 출처
// 키는 맵에 오직 유일
// 값은 중복되어도 상관 없음
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] ar) {
Map<String,Integer> map=new HashMap(); //<키 자료형, 값 자료형>
map.put("A", 100);
map.put("B", 101);
map.put("C", 102);
map.put("C", 103); //중복된 key가 들어갈때는 이전 키,값을 지금의 것으로 업데이트
System.out.println(map);
System.out.println(map.get("A"));
System.out.println(map.get("B"));
System.out.println(map.get("C"));
}
}
// 결과
/*
{A=100, B=101, C=103}
100
101
103
*/
// 출처 : https://wakestand.tistory.com/112
Map 안에 값 넣기
Map.put(key,value);
Map 안의 값 가져오기
Map.get(key);
Map 크기 확인
Map.size();
Map 안의 내용 변경하기
Map.replace(key, value);
Map 안에 특정 Key, Value 들었는지 확인
Map.containsKey(key);
Map.containsValue(value);
Map의 크기가 0인지 확인
Map.isEmpty();
Map 안의 내용 삭제
Map.remove(key);
// 출처 : https://tychejin.tistory.com/31
/*
Map에 값을 전체 출력: entrySet(), keySet()
entrySet() : key와 value의 값이 모두 필요한 경우 사용
keySet() : key의 값만 필요한 경우 사용
*/
// entrySet()
Map<String, String> map = new HashMap<String, String>();
map.put("key01", "value01");
map.put("key02", "value02");
map.put("key03", "value03");
map.put("key04", "value04");
map.put("key05", "value05");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("[key]:" + entry.getKey() + ", [value]:" + entry.getValue());
}
// keySet()
Map<String, String> map = new HashMap<String, String>();
map.put("key01", "value01");
map.put("key02", "value02");
map.put("key03", "value03");
map.put("key04", "value04");
map.put("key05", "value05");
for (String key : map.keySet()) {
String value = map.get(key);
System.out.println("[key]:" + key + ", [value]:" + value);
}
⭐ HashSet : 출처
// 이 클래스의 가장 큰 특징은 중복을 허용하지 않는다는 것
import java.util.HashSet;
import java.util.Iterator;
public class HashSetTest {
public static void main(String[] args) {
// Integer
HashSet<Integer> set = new HashSet<Integer>();
set.add(1);
set.add(2);
set.add(3);
set.add(1);
System.out.println("set의 값 : " + set);
// String
HashSet<String> set2 = new HashSet<String>();
set2.add("a");
set2.add("b");
set2.add("c");
set2.add("a");
System.out.println("set2의 값 : " + set2);
// Integer 출력
Iterator iter = set.iterator();
while(iter.hasNext()) {
System.out.print(iter.next() + " ");
}
System.out.println("");
// String 출력
Iterator iter2 = set2.iterator();
while(iter2.hasNext()) {
System.out.print(iter2.next() + " ");
}
}
}
// 결과
/*
set의 값 : [1, 2, 3]
set2의 값 : [a, b, c]
1 2 3
a b c
*/
'알고리즘 > 그 외' 카테고리의 다른 글
[플로이드 와샬] 프로그래머스 - 배달 (자바) (0) | 2023.02.06 |
---|---|
프로그래머스 - k진수에서 소수 개수 구하기 (자바) (0) | 2022.12.19 |