Study/java 74

[Java] 배열(Array) 선언 및 초기화, 사용 예제

배열이란?배열은 동일한 타입의 여러 값을 저장할 수 있는 자료구조입니다.Java에서는 배열을 선언하고 초기화하는 방법이 여러 가지가 있으며, 올바르게 사용하지 않으면 예외가 발생할 수 있습니다. 배열 선언 및 초기화int[] ints1 = new int[5];int int2[] = new int[5]; int[] ints1: 타입이 먼저 나오고 변수명이 나오는 형태입니다.int int2[]: 변수명 뒤에 대괄호를 붙이는 형태입니다. 타입[] 변수명 부분이 배열을 선언한 부분이고, new 타입[길이] 부분이 초기화한 부분입니다.위의 코드는 int 타입의 배열을 길이 5로 초기화하여 생성하였다는 의미입니다. 배열 초기화배열을 초기화할 때 길이를 지정하지 않으면 컴파일 오류가 발생합니다.그래서 길이를 꼭 지정..

[Java] List 정렬 방법 정리

List를 정렬하는 방법에 대해 설명드리겠습니다. sort 메소드 사용법List의 메소드 중에 sort() 메소드가 있습니다.sort 메소드를 사용할 때 정렬 기준을 정해주면 원하는대로 정렬이 가능합니다. 기본적으로는 다음과 같이 사용합니다.import java.util.ArrayList;import java.util.List;public class Main { public static void main(String[] args) { List numbers = new ArrayList(); numbers.add(1); numbers.add(9); numbers.add(2); numbers.add(4); numbers.add(..

[Java] 인터페이스(Interface) 특징, 장단점, 사용법 및 예제

자바에는 인터페이스(interface)가 있습니다.인터페이스란 무엇인지 아래와 같이 정의하고 있습니다.인터페이스는 클래스들이 구현해야 하는 동작을 지정하는데 사용되는 추상 자료형이다. 그래서 일반적으로 인터페이스에는 메소드만 선언되어있고, 해당 메소드의 구현은 인터페이스를 구현한 클래스에서 진행하게 됩니다. 특징1. 추상 메서드만으로 구성되어 있습니다.그래서 인터페이스를 구현한 클래스는 인터페이스에 있는 모든 메소드를 구현해야 합니다.(Java 8버전부터는 상수와 default 메소드, static 메소드, 추상 메서드도 사용할 수 있게 되었습니다) 2. 다중 상속이 가능합니다.한 클래스에 여러 인터페이스를 상속받으면 여러 기능을 수행할 수 있는 클래스로 만들 수 있습니다.추상클래스나 일반 클래스는 다중..

[Java] LocalDate, LocalDateTime 날짜, 시간 더하기 및 빼기

자바의 LocalDate와 LocalDateTime을 사용해서 날짜 및 시간을 더하거나 뺀 결과 값을 구하는 방법에 대해 설명드리겠습니다. 날짜 및 시간 더하기 plus 메소드를 사용하면 날짜나 시간을 편리하게 더할 수 있습니다. LocalDate nowDate = LocalDate.now(); LocalDate plusOneDay = nowDate.plusDays(1); LocalDate plusOneWeek = nowDate.plusWeeks(1); LocalDate plusOneMonth = nowDate.plusMonths(1); LocalDate plusOneYear = nowDate.plusYears(1); LocalDate plusThreeMonths = nowDate.plus(3, Chro..

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

728x90