Java
-
Java - stream 정렬(sort)Java 2022. 6. 9. 16:11
자바 스트림내 요소들을 정렬하는 방법 샘플 데이터 (Person) public class Person { private Long id; private String name; } id name 1 curry 2 harden 3 lebron Comparator 파라미터 넘겨서 정렬하기 sorted 파라미터에 Comparator를 구현해서 넘겨주면 됩니다. id 기준 정렬 List sortedPersons = persons.stream() .sorted(Comparator.comparingLong(Person::getId)) .collect(Collectors.toList()); 결과 curry harden lebron Comparator 파라미터 넘겨서 역순으로 정렬하기 .reversed()를 호출하면 역순..
-
Java - foreach에서 index값 사용하기Java 2022. 6. 8. 18:58
java stream foreach를 사용할 때 index 값을 이용하는 예제입니다. 보통 for (int i = 0; i < 10; i++) 이렇게 사용하면 index 값을 바로 가져올 수 있습니다. Java stream foreach를 쓸 때는 어떻게 index 값을 가져오는지 확인해보겠습니다. import java.util.Arrays; import java.util.stream.IntStream; import java.util.List; public class Example { public static void main(String args[]) { List list = Arrays.asList("aa", "bb", "cc"); IntStream.range(0, list.size()).forEac..
-
Java - stream filter 사용법Java 2022. 6. 8. 18:55
리스트에서 null일 element를 필터링하는 예제입니다. filter(Objects::nonNull) 사용해서 null이 아닌 element만 return해줍니다. List list = Arrays.asList("aaa", "bbb", null, "ccc", null); List result = list.stream() .filter(Objects::nonNull) .collect(Collectors.toList()); 결과 ["aaa", "bbb", "ccc"]
-
Java - 불변(Immutable) 리스트 생성Java 2022. 6. 8. 18:42
불변 리스트는 아이템의 추가, 수정, 삭제가 불가능합니다. 리스트가 다른 곳에서 바뀌지 않도록 해주기 위해서 불변 리스트를 사용합니다. java.util.Collections 클래스의 unmodifiableList를 이용해서 리스트를 immutable하게 바꿀 수 있습니다. List list = Arrays.asList("A", "B", "C"); list = Collections.unmodifiableList(list); list.add("D"); // UnsupportedOperationException 발생 관련글 Java - Collections.singletonList emptyList Java - Collections.singletonList emptyList 안녕하세요. 오늘은 java.ut..
-
Java - Collections.singletonList emptyListJava 2022. 6. 8. 18:40
안녕하세요. 오늘은 java.util.Collections 프레임워크 중 singletonList, emptyList에 대해서 알아보겠습니다. List list = Arrays.asList(1); IntelliJ에서 위와 같은 코드를 작성하고 Inspect Code를 해보면 다음과 같은 warning을 알려줍니다. Reports any calls to Arrays.asList() with zero arguments or only one argument. Such calls could be replaced with either a call to Collections.singletonList() or Collections.emptyList() which will save some memory. Note: t..
-
Java - Calendar 클래스로 날짜, 시간, 요일 구하기Java 2022. 6. 8. 18:36
안녕하세요. 오늘은 자바 Calendar 클래스를 이용하여 날짜, 시간, 요일을 구하는 방법을 알아보겠습니다. import java.util.Calendar; class HelloWorld { public static void main(String[] args) { Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 1; int date = cal.get(Calendar.DATE); int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); int hour = cal.get(Calendar.HOUR); int minute = cal...
-
Java - 싱글턴(Singleton) 패턴Java 2022. 5. 30. 20:26
싱글턴 패턴이란? 애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고(static) 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나고 최초 생성 이후에 호출된 생성자는 최초에 생성한 객체를 반환 다른 클래스 인스턴스들과 데이터 공유가 쉬움 Database Connection Pool처럼 공통된 객체를 여러개 생성해서 사용해야하는 상황에서 많이 사용(쓰레드풀, 캐시, 로그 기록 객체등) anti-pattern이므로 가급적 사용하지 않는 것이 좋음 싱글턴 패턴의 문제점 너무 많은 일을 하거나 많은 데이터를 공유시킬 경우 다른 클래스 인스턴스들 간의 결합도가 높아져 "개방-폐쇄 원칙"을 위배하게 된다. 수정, 테스트가 어려움 싱..