Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

집 짓는 개발블로그

하루만에 코딩테스트 언어 갈아타기(Python → Java)(1) 본문

Java

하루만에 코딩테스트 언어 갈아타기(Python → Java)(1)

취준er 2024. 11. 15. 02:25

가장 먼저 외워야 하는 건 문자열 처리 함수들과 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));