집 짓는 개발블로그
하루만에 코딩테스트 언어 갈아타기(Python → Java)(1) 본문
가장 먼저 외워야 하는 건 문자열 처리 함수들과 Integer <-> int, String <-> Integer/int, Array <-> ArrayList, HashSet, HashMap 변환 및 사용법 + int[] <-> Integer[]
그 다음으로는 Arrays, ArrayList, HashMap, HashSet의 메소드들을 본다. 정렬이나 인덱싱 등
추가적으로, 파이썬에서 사용할 수 있는 조합과 순열도 자바에서는 직접 구현해야 하기 때문에 코드를 외워둬야 한다.
IDE처럼 쓰고 싶은 거 무작정 치면 알아서 import해주지 않을 확률이 높기 때문에,
import java.util.*; 쓰고 시작하는 게 나은 것 같다.
0. int ↔︎ Integer
이거 헷갈리면 죽음뿐
int -> Integer (boxing)
이건 그냥 Integer nI = new Integer(변환 원하는 int타입 변수); // 하면 된다.
Integer -> int (unboxing)
Integer d = new Integer(4);
int d = Integer.parseInt(c);
// parseInt는 String -> int에도 사용 가능함
Integer e = new Integer(5);
int f = e.intValue();
// parseInt(), valueOf()는 static인데 반해 intValue()는 static이 아니기 때문에, Integer를 먼저 생성해준 다음(여기서는 e) 사용할 수 있다. static메소드들은 클래스이름.메소드이름(파라미터)로 바로 사용할 수 있는 것과 대조적이다.
1. 정수 ↔︎ String
1-1. 정수에서 String으로
1) primitive type인 int에만 적용 가능한 방법
int변수에 + "" 해주면 바로 String으로 바뀐다.
2) int, Integer 두 타입에 모두 적용 가능한 방법
String 스트링변수 = Integer.toString(정수인 변수)
String 스트링변수 = String.valueOf(정수인 변수)
다만, Integer.toString에 null이 들어가면 NPE ↔︎ String.valueOf에 null이 들어가면 'null' 나온다는 차이가 있다.
1-2. String에서 정수로
int a = 3;
Integer b = Integer.valueOf(a); // String.valueOf랑 헷갈릴만함
// 이 상태에서 int값을 뽑아내고 싶다면 String.valueOf(a).intValue() 해주면 된다.
2. Array ↔︎ ArrayList
어떤 타입이 담긴 자료구조냐에 따라 다르다.
배열은 int[]와 Integer[] 모두 가능하지만, ArrayList는 int를 직접 저장할 수 없어 Integer를 이용해야 한다.
String
1-1. ArrayList<String>에서 String[] 배열로
String[] array = arrayList.toArray(new String[arrayList.size()]);
1-2. 배열 String[]에서 ArrayList<String>으로
ArrayList<String> arrayList = new ArrayList<>(Arrays.asList(array));
int(Integer)
1-1. ArrayList<Integer>에서 배열 int[]로
ArrayList<Integer> arrayList = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
int[] array = arrayList.stream().mapToInt(Integer::intValue).toArray();
1-2. 배열 int[]에서 ArrayList<Integer>로
int[] array = {1, 2, 3, 4, 5};
ArrayList<Integer> arrayList = new ArrayList<>(Arrays.stream(array).boxed().toList());
1-3. ArrayList<Integer>에서 배열 Integer[]로
ArrayList<Integer> arrayList = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
Integer[] array = arrayList.toArray(new Integer[0]); // new Integer[0]을 인수로 전달하여 배열 타입을 지정
1-4. 배열 Integer[]에서 ArrayList<Integer>로
Integer[] array = {1, 2, 3, 4, 5};
ArrayList<Integer> arrayList = new ArrayList<>(Arrays.asList(array));
'Java' 카테고리의 다른 글
하루만에 코딩테스트 언어 갈아타기(Python → Java)(3 Array) (4) | 2024.11.15 |
---|---|
하루만에 코딩테스트 언어 갈아타기(Python → Java)(2 ArrayList) (2) | 2024.11.15 |
[Java] subList 사용법 (1) | 2023.12.10 |
Java 기초(3일차) (0) | 2023.08.06 |
Java 기초(2일차) (0) | 2023.08.06 |