전체 글 181

[Java] Optional - 개념 및 사용법

Optional은 NullPointerException을 방지하기 위해 많이 사용합니다.자바로 코딩을 하다 보면 NullPointerException 자주 볼 수 있는데, 그럴 때 Optional을 사용하면 어느 정도 예방이 가능합니다. 예를 들면 다음과 같은 null 조건을 Optional로 대체할 수 있습니다.String nStr = null;if (nStr == null) { nStr = "not null!";}//-------String nStr = null;String oStr = Optional.ofNullable(nStr).orElse("not null!");System.out.println(oStr);두 코드 다 문자열 변수의 값이 null이면 변수에 "not null!"이라는 문자열..

[Java] Collection - ConcurrentModificationException: toString

리스트의 remove 메소드를 사용하지 않았는데 ConcurrentModificationException이 발생하는 경우가 있습니다. [Java] Collection - ConcurrentModificationException보통은 컬렉션의 remove 메소드를 사용했을 때 해당 예외가 자주 발생합니다.최근에 다른 상황에서 해당 예외가 발생했어서 이에 대해 정리해보려 합니다. toString()컬렉션을 문자열로 변환할 때 예외가 발생할 수 있습니다.List list = new ArrayList();Thread thread1 = new Thread(() -> { for (int i = 0; i { for (int i = 0; i 코드를 설명하자면, 첫번째 스레드에서 리스트에 값을 계속 추가하는..

[Windows/Java] Intellij Community 설치 및 실행

인텔리제이 무료 버전인 Intellj Community Edition을 설치하는 과정입니다. Intellj Community 설치 파일 다운로드https://www.jetbrains.com/ko-kr/idea/download/#section=windowsIntellij 다운로드 페이지에서 Community Edition 버전 다운로드를 선택합니다. Ultimate 버전은 유료 버전입니다.두 버전이 큰 차이가 있기는 하지만, 자바 개발할 때는 무료 버전인 Community Edition을 사용해도 크게 어려움은 없습니다. (하지만 개인적으로 유료 버전이 좋기는 해서 기회가 되면 사용해 보는 것이 좋습니다) 다운로드 버튼을 누르면 설치 파일이 다운로드됩니다. 설치다운로드가 완료되면 파일을 실행하여 설치를 시..

[Windows/Java] Eclipse 설치 및 실행

자바로 개발할 때 많이 사용하는 IDE인 이클립스를 설치하는 과정입니다. Eclipse Installer 다운로드이클립스 설치파일 다운로드 페이지 바로가기 에 접속합니다. Eclipse Installer 2024-06 R | Eclipse Packages5 Steps to Install Eclipse We've recently introduced the Eclipse Installer, a new and more efficient way to install Eclipse. It is a proper installer (no zip files), with a self-extracting download that leads you through the installation process. For those..

[Java] Stream - sort, min, max

sort()sort는 Stream을 정렬해주는 메소드입니다.매개변수가 없는 것과 Comparator를 매개변수로 받는 것 두 가지가 있습니다.List list = new ArrayList();list.add(12);list.add(83);list.add(35);list.add(7);list.add(90);list.stream() .sorted() .forEach(n -> System.out.print(n + " "));sort()를 사용하면 스트림의 요소들을 순서대로 정렬됩니다.숫자면 오름차순으로, 문자열이면 사전순으로 정렬합니다. 정렬 기준을 지정해줄수도 있습니다.List list = new ArrayList();list.add("eee");list.add("ggg");list.add("bb..

[Java] Stream - filter : 스트림 데이터 필터링

Stream.filter란?filter는 특정 조건에 맞는 요소만을 추출하여 새로운 스트림을 생성하는 데 사용됩니다.Predicate로 조건을 만들어서 filter 메서드에 매개변수로 넣어주면 조건에 맞는 요소만 가지고 새로운 스트림이 만들어집니다.Java Stream Filter 메소드 공식 문서 바로가기 w.getColor() == RED) .mapToInt(w -> w.getWeight()) " data-og-host="docs.oracle.com" data-og-source-url="https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#filter-java.util.function.Predicate-" data-og-url=..

[Java] Stream - forEach

Java 8부터 도입된 메소드로, for문이나 향상된 for문처럼 반복할 수 있는 방법 중 하나입니다. Stream.forEach, Collection.forEach의 차이 forEach 메소드는 Stream에도 있고, Collection에도 존재합니다. List list = new ArrayList(); list.add(1); list.add(2); list.add(3); System.out.print("Collection.forEach: "); list.forEach(num -> System.out.print(num + " ")); System.out.println("\\n========================="); System.out.print("Stream.forEach: "); list...

[Java] String - hashcode(), trim() 공백 제거, intern() 사용법

hashcode()String 객체의 hashcode를 변환해줍니다.해시코드는 간단하게 말하면 객체의 고유한 값이라고 합니다.Object클래스로 구현된 객체라면 이 메소드를 모두 가지고 있습니다.그래서 값을 서로 비교할때 사용됩니다. 사용방법은 다음과 같습니다.String str1 = "WORD";String str2 = "WORD";System.out.println("str1's hashcode : " + str1.hashCode());System.out.println("str2's hashcode : " + str2.hashCode());String str3 = new String("WORD");System.out.println("str3's hashcode : " + str3.hashCode());..

[Java] String - getBytes, toCharArray

getBytes()문자열을 byte배열로 변환해주는 메소드입니다.매개변수로 Charset charset이나 String charsetName을 받기도 합니다.String str = "abc";System.out.println("getBytes() : " + Arrays.toString(str.getBytes()));System.out.println("getBytes(Charset charset) : " + Arrays.toString(str.getBytes(Charset.defaultCharset()))); try { System.out.println("getBytes(String charsetName) : " + Arrays.toString(str.getBytes("UTF-8")..

[Java] Stream - map: 스트림 값 변환

자바 Stream의 map 메서드는 주어진 함수를 적용한 새로운 스트림을 만들어주는 메서드입니다. mapmap은 다음과 같이 사용합니다.List list = new ArrayList();list.add(1);list.add(2);list.add(3);list.stream().map(num -> num * 3).forEach(num -> System.out.println(num));정수 리스트의 각 요소에 3을 곱한 값으로 새로운 스트림을 만들었습니다.map의 결과값은 Stream이기 때문에 map의 결과에 Stream 메서드를 또 사용할 수 있습니다. 또 다른 예로, 컬렉션의 타입을 바꾸고 싶을 때 사용하기도 합니다.List list = new ArrayList();list.add(1);list.add(..

728x90