Programming/Java

[Java] 코딩테스트 자주 사용하는 문법 정리

JeongKyun 2022. 7. 15.
반응형

서론

Java로 알고리즘 문제를 풀 때 자주 사용하게 되는 문법들을 정리하려합니다. 계속해서 추가 예정입니다.

 


형 변환

Char To Int

char myChar = '3';
int myInt = Character.getNumericValue(myChar);        
System.out.println(myInt);

//결과: 3

 

String To Char

String myString = "apple";
char[] myChars = myString.toCharArray();

for (int i=0; i<myChars.length; i++){
	System.out.printn(myChars[i]);
}

/* [결과]
            a
            p
            p
            l
            e
*/

 

 


 

Array

Arrays.toString(arr) - 배열 값 출력

int[] arr = { 1, 2, 3, 4, 5 };         
System.out.println(Arrays.toString(arr));

 

 

Arrays.deepToString(arr) - 이차원 배열 값 출력

int[][] arr = {{1,2,3,4,5},{5,4,3,2,1}};
System.out.println(Arrays.deepToString(arr));

 

 

Arrays.sort(arr) - 배열 정렬

Arrays.sort(arr);

 

 

Arrays.copyOfRange(arr, i, j) - 배열 짜르기

   // 1. 원본 배열
   int[] arr = {0, 1, 2, 3, 4, 5};
   
   // 2. 배열을 자를 index
   int position = 3;         
   
   // 3. 배열 자르기       
   int[] arr1 = Arrays.copyOfRange(arr, 0, position);        
   int[] arr2 = Arrays.copyOfRange(arr, position, arr.length);     
   
   // 4. 자른 배열 출력        
   System.out.println(Arrays.toString(arr1));  // [0, 1, 2]        
   System.out.println(Arrays.toString(arr2));  // [3, 4, 5]

 

 

 

Arrays.stream(arr).sum() --> 배열 요소 모두 더하기

int arr[] = new int[] {12,34,45,21,33,4};
int sum = Arrays.stream(arr).sum();
System.out.println("Array Sum = "+sum);

 

 

Array 중복제거하기 (stream)

Arrays.stream(A).distinct().toArray()

 


 

ArrayList

ArrayList 정렬 방법

ArrayList<String> list = new ArrayList<>(Arrays.asList("C", "A", "B", "a"));
System.out.println("원본 : " + list); // [C, A, B, a]         


// 오름차순으로 정렬        
Collections.sort(list);        
System.out.println("오름차순 : " + list); // [A, B, C, a]         


// 내림차순으로 정렬        
Collections.sort(list, Collections.reverseOrder());        
System.out.println("내림차순 : " + list); // [a, C, B, A]      


// 대소문자 구분없이 오름차순        
Collections.sort(list, String.CASE_INSENSITIVE_ORDER);        
System.out.println("대소문자 구분없이 오름차순 : " + list); // [a, A, B, C]        


// 대소문자 구분없이 내림차순        
Collections.sort(list, Collections.reverseOrder(String.CASE_INSENSITIVE_ORDER));        
System.out.println("대소문자 구분없이 내림차순 : " + list); // [C, B, a, A]

 

 

ArrayList 중복제거

List result = intList.stream().distinct().collect(Collectors.toList());

 

 

ArrayList.addAll(new ArrayList<>()) - 깊은 복사

ArrayList<Integer> arrList_A = new ArrayList<Integer>();
ArrayList<Integer> arrList_B =new ArrayList<Integer>();
arrList_A.addAll(arrList_B);

 

 

ArrayList.subList(int fromIdx, int toIdx) - 리스트 짜르기

ArrayList<Integer> testData = new ArrayList();
for (int data = 0; data < 10; data++) {
    testData.add(data);
}
System.out.println(testData);
System.out.println(testData.subList(1, testData.size() - 1));

//출력 결과
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8]

 

 

Arrays.asList(T...a) - 리스트 값 넣기 

ArrayList<String> list = new ArrayList<String>(Arrays.asList("A", "B"));
System.out.println(list);

//출력 결과
[A, B]

 

 

ArrayList 최대값, 최소값 구하기

ArrayList<Integer> list = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4));        
System.out.println(list); // [0, 1, 2, 3, 4]         

// Max        
int max = Collections.max(list);        
System.out.println(max);  // 4         

// Min        
int min = Collections.min(list);        
System.out.println(min);  // 0

 


 

HashMap

stream()으로 HashMap key 값 가져오기

import java.util.HashMap;
import java.util.Map;
 
class Main
{
    public static <K, V> K getKey(Map<K, V> map, V value)
    {
        return map.entrySet().stream()
                .filter(entry -> value.equals(entry.getValue()))
                .findFirst().map(Map.Entry::getKey)
                .orElse(null);
    }
 
    public static void main(String[] args)
    {
        Map<String, Integer> hashMap = new HashMap();
        hashMap.put("A", 1);
        hashMap.put("B", 2);
        hashMap.put("C", 3);
 
        System.out.println(getKey(hashMap, 2));        // 인쇄물 `B`
    }
}

 

 

HashMap key, value 가져오기 (entrySet)

HashMap<String,String> hashMap = new HashMap<String,String>();
hashMap.put("111", "aaa");
hashMap.put("222", "bbb");


// 방법1
Iterator<Map.Entry<String,String>> entries = hashMap.entrySet().iterator();
while(entries.hasNext()){
	Entry<String,String> entry = (Entry<String,String>)entries.next();
	System.out.println("key : " + entry.getKey() + " , value : " + entry.getValue());
}
    
// 방법2
for(Map.Entry<String,String> entry : hashMap.entrySet()){
	System.out.println("key : " + entry.getKey() + " , value : " + entry.getValue());
}

// 방법3
hashMap.forEach((k,v) -> System.out.println("key : " + k + ", value : " + v));

댓글

💲 많이 본 글