주녁, DevNote
article thumbnail
Published 2023. 1. 18. 21:36
몰래보는 자바(Java) 코드조각 How-to

지적과 댓글은 언제나 환영합니다!

INDEX

1. 문자열 관련

2. Collection 관련

3. 형 변환 관련

5. JSON 관련

4. 유용한 함수


문자열 관련

// 분자열 분리
StringTokenizer st= new StringTokenizer("문자열 입니다", " ");
String str = st.nextToken(); // "문자열"
String[] arr = str.split(""); // ["문", "자", "열"]

Collection 관련

/* Header Library */
import java.util.Collection;
import java.util.List;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;

import java.util.*; // 급할떄만 쓰자

/* Array */
    // 선언
    int[] arr = new int[] {1,2,3};
    int[] _arr = { 1, 2, 3, 4, 5 };  
    int[][] arr2 = {{1,2,3,4,5},{5,4,3,2,1}};

    // 합계
    Arrays.stream(arr).sum(); 

    // 출력
    Arrays.toString(arr);
    Arrays.deepToString(arr2);

    // 복사
    Arrays.copyOfRange(arr, start, end);

    // 중복제거
    Arrays.stream(A).distinct().toArray();

/* List */
    // 중복제거
    list.stream().distinct().collect(Collectors.toList());

    // 정렬        
    Collections.sort(list); // 오름차순        
    Collections.sort(list, Collections.reverseOrder()); // 내림차순    
    Collections.sort(list, String.CASE_INSENSITIVE_ORDER); // 오름차순 (대소문자 구분X)

    // 최대, 최소
    Collections.max(list);
    Collections.min(list);

/* HashMap */
    // 순회
    hashMap.forEach((k,v) -> {...});

형 변환 관련

/* 기본형 변환 */
    int i = Integer.parseInt("10"); // String → int
    int i = Character.getNumericValue('10'); // char → int
    char[] chars = "hello".toCharArray(); // String → char[]

/* List<String> → String[] */
    String arr[] = list.toArray(new String[list.size()]); 
        // new String[0] : 같은 크기, 
        // new String[list.size()+1] : null로 채워서 append

/* String [] → List<String> */
    List<String> list = new ArrayList<>(Arrays.asList(arr)); // 새로운 객체를 생성
    List<String> list2 = Stream.of(arr).collect(Collectors.toList()); // 스트림 사용
        // Arrays.asList(arr) : 원본 배열을 참조하는 리스트 반환(같이 변경됨)

/* int[] → List<Integer> */
    int[] arr = { 1, 2, 3 };
    List<Integer> intList = new ArrayList<>();        
    for (int item : arr) {
        intList.add(item);        
    }

    // 스트림 사용
    List<Integer> intList = Arrays.stream(arr)
                                .boxed()                        
                                .collect(Collectors.toList());

JSON

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

ObjectMapper objectMapper = new ObjectMapper();

// JSON을 Object로
Student student = objectMapper.readValue(jsonStr, Student.class);
Student[] studentArr = objectMapper.readValue(jsonArrStr, Student[].class);

// JSON을 Map으로
Map<String, Object> jsonMap = objectMapper.readValue(jsonStr, new TypeReference<Map<String, Object>>() {});

// Object를 JSON으로
String studentJson = objectMapper.writeValueAsString(student);
String studentJson = objectMapper.writeValueAsString(jsonMap);

유용한 함수


/* Graph 생성 */
    // 단 방향 [출발노드,도착노드] 가 주어졌을 때
    int[][] arr=[[1,3],[1,5],[3,2],[3,4],[5,4],[5,6],[2,4],[4,6]];

    ArrayList<ArrayList<Integer>> list=new ArrayList<>();
    // 인접리스트 초기화
    for(int i=0;i<=arr.length;i++){
        list.add(new ArrayList<>());
    }

    // 양방향 인접리스트
    for(int i=0;i<arr.length;i++){
        int start=arr[i][0], end=arr[i][1];
        list.get(start).add(end);
        list.get(end).add(start);
    }

출처

gwang920님 블로그

hianna님 블로그

hygge님 블로그

profile

주녁, DevNote

@junwork

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!