프로그래밍/Java

프로그래밍/Java

Java Map의 초기용량을 설정해야 하는 이유

Map을 쓸 때 Map의 초기 용량을 설정하지 않으면 런타임 시동적으로 용량이 확장되어 성능에 영향을 미칩니다. 따라서 Map을 선언할 때 초기 용량을 설정하여 성능을 개선합니다. Map move = new HashMap(32); HashMap은 내부적으로 배열을 사용하여 데이터를 저장하며, 이 배열의 크기를 동적으로 확장하거나 축소합니다. 배열의 크기를 동적으로 변경하는 것은 성능에 영향을 미치므로, 초기 용량을 충분히 설정하여 배열 크기를 자주 변경하지 않도록 합니다. HashMap의 초기 용량을 설정하지 않으면 기본값인 16이 사용됩니다. 초기 용량은 저장할 데이터의 양에 따라 다르게 설정해야 하므로, 정확한 값은 실험적으로 결정해야 합니다. 일반적으로 대용량 데이터를 다룰 때, 초기 용량을 충분히..

프로그래밍/Java

비주얼스튜디오 코드에서 Java Compile 하는 방법

요즘은 비쥬얼 스튜디오 코드로 왠만한거는 다 할 수 있는 것 같습니다. 비쥬얼스튜디오 코드로 Java의 단일 파일 컴파을 하기 위한 방법을 알아보도록 하겠습니다. 먼저 확장 패키지에서 java를 검색 해보시면 위 2개의 패키지를 설치해주세요. Open JDK 11.0.2(https://jdk.java.net/archive/)를 설치합니다. JDK 버전이 많지만 해당 버전이 무료로 사용하기에 가장 적합하다고 판단됩니다. 압축 파일을 받으신 뒤 환경변수를 설정해야 하는데요. 많은 사이트에서 설명하고 있어서 생략할까 하다가 간단히 설명드리면 윈도우 버튼 클릭 후 "환경" 이라고 입력하시면 시스템 환경 변수 설정이 나타납니다. 환경 변수 클릭 후 하단의 시스템 변수 텝에서 Path를 클릭 후 편집을 눌러 주세요..

프로그래밍/Java

[Java] 2차원 배열 정렬하기(Comparator, Lamda)

이중 배열을 정렬하고 싶은 경우 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

[Java] Integer List int 배열로 변환하는 방법

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] Java 8 LocalDateTime 직렬화 역직렬화 오류 해결 방법

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

[Java] HashSet 사용 방법 및 개념

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

[알고리즘 / Java] 선택 정렬(Selection Sort)에 대해서

컴퓨터 분야에서는 데이터를 얼마나 효율적이고 빠르게 정렬하는 것에 대한 이슈가 항상 발생해 왔습니다. 그렇기 때문에 정렬에 대한 알고리즘도 필연적으로 정렬을 해야하는 데이터에 따라 어느것이 더 효율적이고 시간 낭비 없이 해결되는지 항상 이슈화가 됐습니다. 흔히 알고리즘 정렬 코드 종류는 버블 정렬, 선택 정렬, 삽입 정렬, 힙 정렬, 퀵 정렬, 기수 정렬 등 다양한 코드들이 존재합니다. 그 중 간단하면서도 자주 쓰이는 알고리즘 정렬 코드로는 선택 정렬과 삽입 정렬이 있습니다. 이번 포스팅에서는 선택 정렬에 대한 알고리즘에 대해 알아보겠습니다. 선택 정렬은 제자리 정렬로써 해당 위치[배열]에 들어갈 수를 전체와 비교하면서 정렬하는 방법입니다. 정렬은 오름차순인 경우와 내림차순인 경우에 따라 위치만 바뀔 뿐..

프로그래밍/Java

[Java] 컬렉션 프레임워크에 대한 이해

컬렉션 프래임워크라는 것은 다른 말로는 컨테이너라고도 부릅니다. 자바의 5버전부터 나온 것으로써 데이터 군을 저장하는 클래스들을 표준화한 설계를 뜻합니다. 쉽게 말하면 값을 담을 수 있는 그릇이라고 생각해도 좋습니다. 자바에서는 다양한 상황에서 사용할 수 있는 다양한 컨테이너를 제공하는데 이것을 컬렉션 프레임워크라고 부릅니다. 아래와 같은 배열의 값을 표준화한 것이 컬레션 프레임워크입니다. Array : String arryName[]= {"", ""}; int arryJumSu[] = {00, 00}; 이러한 데이터군이 표준화 한 것입니다. 인터페이스의 콜렉션은 데이터군을 저장하기 위한 인터페이스 입니다.자주 쓰이는 List, Set의 형태의 군이 쓰입니다. 또한, 인터페이스 Map등이 대표적으로 데이..

프로그래밍/Java

[Java / 설치] Eclipse 설치 및 Apache Tomcat 설치 및 연동하기

Eclipse & Apache Tomcat 설치 방법 Java의 프로그래밍을 하기 위한 가장 편리한 IDE 중 하나인 이클립스 설치 방법에 대한 설명을 포스팅 하겠습니다.물론 프로그래밍을 어느정도 해보신 분이면 당연히 아시는 이야기이니 그냥 지나쳐도 무방할 것이라 생각합니다. 일단 이클립스 18년 8월 기준 가장 최신 버전(https://www.eclipse.org/downloads/packages/)으로 eclipse EE버전으로 설치합니다. bit는 자신의 컴퓨터에 맞춰서 다운로드 받아주세요. EE버전은 웹프로그래밍을 위해서 다양한 언어를 지원하는 것이기때문에 IDE보다 상위버전입니다. 일단 압축파일의 설치 위치는 경로가 길지 않으면서 한글폴더는 피하는게 좋습니다. 저 같은 경우는 C\Program ..

이프로그
'프로그래밍/Java' 카테고리의 글 목록