Study/java 70

[Java] 현재 날짜와 시간 구하기 및 형식 지정, 문자열 변환

자바에서 현재 날짜와 시간을 구하는 방법과 날짜 및 시간 형식을 지정해주는 방법에 대해 설명드리겠습니다. 현재 날짜, 시간 구하기LocalDate, LocalTime, LocalDateTime, ZonedDateTime, Date, Calendar에서 오늘 날짜를 가져오는 방법입니다.import java.time.LocalDate;import java.time.LocalDateTime;import java.time.LocalTime;import java.time.ZonedDateTime;import java.util.Calendar;import java.util.Date;public class NowDateTime { public static void main(String[] args) { ..

[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 코드를 설명하자면, 첫번째 스레드에서 리스트에 값을 계속 추가하는..

[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(..

[Java] Collection remove 사용 시 ConcurrentModificationException 발생

ConcurrentModificationException 예외가 발생하는 여러 상황이 있지만, 그 중에서 Collection의 remove 메소드를 사용해서 예외가 발생하는 경우와, 예외를 방지하는 방법에 대해 설명드리겠습니다. removeList list = new ArrayList();for (int i = 0; i List의 remove 메소드를 사용할 때 ConcurrentModifiedException이 발생할 수 있습니다. foreach(향상된 for문)를 통해 순회하는 경우 내부에서 Iterator를 사용하는데, Iterator의 next() 메소드를 호출하면 동시 수정 여부를 체크하게 됩니다.동시 수정 여부는 ArrayList 내부에 있는 Iterator의 카운트(expectedModCou..

728x90