Java Map의 초기용량을 설정해야 하는 이유
·
Programming/Java Spring
Map을 쓸 때 Map의 초기 용량을 설정하지 않으면 런타임 시동적으로 용량이 확장되어 성능에 영향을 미칩니다. 따라서 Map을 선언할 때 초기 용량을 설정하여 성능을 개선합니다. Map move = new HashMap(32); HashMap은 내부적으로 배열을 사용하여 데이터를 저장하며, 이 배열의 크기를 동적으로 확장하거나 축소합니다. 배열의 크기를 동적으로 변경하는 것은 성능에 영향을 미치므로, 초기 용량을 충분히 설정하여 배열 크기를 자주 변경하지 않도록 합니다. HashMap의 초기 용량을 설정하지 않으면 기본값인 16이 사용됩니다. 초기 용량은 저장할 데이터의 양에 따라 다르게 설정해야 하므로, 정확한 값은 실험적으로 결정해야 합니다. 일반적으로 대용량 데이터를 다룰 때, 초기 용량을 충분히..
비주얼스튜디오 코드에서 Java Compile 하는 방법
·
Programming/Java Spring
요즘은 비쥬얼 스튜디오 코드로 왠만한거는 다 할 수 있는 것 같습니다. 비쥬얼스튜디오 코드로 Java의 단일 파일 컴파을 하기 위한 방법을 알아보도록 하겠습니다. 먼저 확장 패키지에서 java를 검색 해보시면 위 2개의 패키지를 설치해주세요. Open JDK 11.0.2(https://jdk.java.net/archive/)를 설치합니다. JDK 버전이 많지만 해당 버전이 무료로 사용하기에 가장 적합하다고 판단됩니다. 압축 파일을 받으신 뒤 환경변수를 설정해야 하는데요. 많은 사이트에서 설명하고 있어서 생략할까 하다가 간단히 설명드리면 윈도우 버튼 클릭 후 "환경" 이라고 입력하시면 시스템 환경 변수 설정이 나타납니다. 환경 변수 클릭 후 하단의 시스템 변수 텝에서 Path를 클릭 후 편집을 눌러 주세요..
[Java] 2차원 배열 정렬하기(Comparator, Lamda)
·
Programming/Java Spring
이중 배열을 정렬하고 싶은 경우 Comparator를 쓰거나 람다식을 쓰면 됩니다. 예를 들어 int[][] arrays = { { 0, 3 }, { 2, 6 }, { 1, 9 }, { 1, 8 } }; 위의 이중 배열의 순서를 아래와 괕이 변경하는 방법입니다. { { 0, 3 }, { 1, 8 } { 1, 9 }, { 2, 6 } } 먼저 Comparator로 구현하는 방법입니다. import java.util.Arrays; import java.util.Comparator; int[][] arrays = { { 0, 3 }, { 2, 6 }, { 1, 9 }, { 1, 8 } }; Arrays.sort(arrays, new Comparator() { @Override public int compare..
[Java] Integer List int 배열로 변환하는 방법
·
Programming/Java Spring
Java 8 이상일 경우 stream API를 사용할 수 있습니다. int[] intArray; List list = new ArrayList(); intArray = list.stream().mapToInt(i -> i).toArray(); 위와 같이 할 수 있습니다. 또한 filter를 이용하여 조건절도 넣을 수 있다 예를 들어 숫자 10이상만 넣고 싶다면 int[] intArray; List list = new ArrayList(); for (int i = 0; i (10 i).toArray(); System.out.println(Arrays.toString(intArray)); 위..
[Java] Java 8 LocalDateTime 직렬화 역직렬화 오류 해결 방법
·
Programming/Java Spring
Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling... 객체의 항목 중 LocalDateTime 이 있는 항목의 값을 ObejctMapper 함수를 써서 가져올 경우 위와 같은 에러가 발생하는 경우는 Java 8에서 추가된 LocalDateTime 항목을 제대로 직렬화 또는 역직렬화를 못하는 현상입니다. 이런 경우 메이븐리포지토리(https://mvnrepository.com/) 사이트에서 jackson-datatype-jsr310를 종속성 추가하여 처리할 수 있다고 합..
[Java] HashSet 사용 방법 및 개념
·
Programming/Java Spring
HashSet이란? HashSet은 중복해서 저장하지 않은 집합이라고 볼 수 있습니다. HashSet set = new HashSet(); set.add("철수"); set.add("영수"); set.add("철수"); // 2출력 System.out.print(set.size()); 위의 결과값은 2가 나옵니다. 만약 순서가 중요하시면 LinkedHashSet을 이용하시면 되고, 자동으로 정렬을 하고 싶다면 TreeSet을 이용하시면 됩니다. TreeSet set = new TreeSet(); set.add("a"); set.add("c"); set.add("b"); while (iterator.hasNext()) { String str = iterator.next(); System.out.printl..
[알고리즘 / Java] 선택 정렬(Selection Sort)에 대해서
·
Programming/Java Spring
컴퓨터 분야에서는 데이터를 얼마나 효율적이고 빠르게 정렬하는 것에 대한 이슈가 항상 발생해 왔습니다. 그렇기 때문에 정렬에 대한 알고리즘도 필연적으로 정렬을 해야하는 데이터에 따라 어느것이 더 효율적이고 시간 낭비 없이 해결되는지 항상 이슈화가 됐습니다. 흔히 알고리즘 정렬 코드 종류는 버블 정렬, 선택 정렬, 삽입 정렬, 힙 정렬, 퀵 정렬, 기수 정렬 등 다양한 코드들이 존재합니다. 그 중 간단하면서도 자주 쓰이는 알고리즘 정렬 코드로는 선택 정렬과 삽입 정렬이 있습니다. 이번 포스팅에서는 선택 정렬에 대한 알고리즘에 대해 알아보겠습니다. 선택 정렬은 제자리 정렬로써 해당 위치[배열]에 들어갈 수를 전체와 비교하면서 정렬하는 방법입니다. 정렬은 오름차순인 경우와 내림차순인 경우에 따라 위치만 바뀔 뿐..