Java

· Java
익명 클래스 (Anonymous Class)람다식을 이해하기 위해선 익명함수를 이해해야한다.익명클래스란 내부클래스의 일종으로 말그대로 이름이 없는 클래스를 말한다. 이름이 없다는 것은 부를필요가 없다는 것으로 그 클래스 내부의 구현이 다변하게 변경될 때 종류별로 클래스를 정의하긴 힘들기 때문에 사용한다. 익명클래스를 사용하는 예시익명클래스를 사용하는 가장 대표적인 예시는 sort()메소드를 사용할 때다.sort()메소드는 인자로 Comparator 인터페이스의 구현체를 받는데 이 Comparator 구현체를 통해 정렬하는 기준을 정의한다. Compartor 구현체예시import java.util.Comparator;class Student { private String name; private..
· Java
HashMap의 데이터를 value값으로 정렬하기1. List 만들기HashMap을 정렬하기 위해선 다음과 같이 entrySet()으로 변환시킨 뒤, List에 넣어야한다.Map map = new HashMap();List> entries = new ArrayList(map.entrySet());이때 List의 Generic에는 Map.Entry 객체가 들어가야 한다.ArrayList 생성자로 entrySet을 넣어주면 쉽게 List를 만들 수 있다.2. sort()메소드로 정렬하기sort() 메소드의 매개변수로 Comparator 객체를 넣어주면 된다.Map map = new HashMap();List> entries = new ArrayList(map.entrySet());entries.sort((e..
· Java
HashSet의 특징HashSet은 중복을 빠르게 체크할 수 있는 자료구조이다.기존의 List에서 중복여부를 체크하려면 List의 모든 요소를 순회하며 해당 값이 있는지 체크(O(n))해야 했지만HashSet은 그러한 과정을 O(1)로 해결한다. 하지만 HashSet의 타입이 Integer나 String이 아닌 사용자가 정의한 객체라면 어떻게 될까?이때는 중복을 속성의 값으로 체크하는 것이 아닌 객체의 참조값으로 체크를 한다.속성의 값으로 중복을 체크하고 싶다면 어떻게 해야할까? 객체의 속성으로 중복 체크해당 클래스에서 equals()메서드와 hashCode()메서드를 오버라이드 해주면 된다.public class Person { private String name; private int ag..
· Java
기본 타입(Primitive)의 배열int, double, float등 기본 타입의 배열을 정렬하기 위한 방법은 다음과 같다. 오름차순int[] arr = new int[]{9, 8, 2, 10, 4};Arrays.sort(arr); 내림차순내림차순의 경우 복잡해진다.1. stream을 사용하는 방법int[] arr = {5, 3, 8, 1, 9, 2};// int[] 배열을 Integer[] 배열로 변환Integer[] integerArray = Arrays.stream(arr).boxed().toArray(Integer[]::new);// 배열을 내림차순으로 정렬Arrays.sort(integerArray, Collections.reverseOrder());stream을 통해 객체 타입의 배열로 변환..
jaehee1113
'Java' 카테고리의 글 목록 (2 Page)