프로그램을 짜던 중 리스트에 있는 원소가 저장되었는지 확인하고 싶어 테스트를 하고 싶은데 어떤 메소드가 좋은지 찾아보다가 contains 메소드를 찾아서 알아보았다. 먼저 아래와 같이 core.api.Assertions를 import해주는게 우선.import static org.assertj.core.api.Assertions.*; containscontains 메소드는 단순하다.중복 , 순서에 관계 없이 값만 일치하면 테스트가 성공한다. void containsTest() { List list = Arrays.asList(1, 2, 3); // Success: 모든 원소를 입력하지 않아도 성공 assertThat(list).contains(1, 2); // Success: ..
😀Language
자바 프로그래밍을 하며 리스트로 반환을 하고싶은데 어떤 방식으로 해야할지 몰라 찾다가 List.of()에 대해 알게 되었고, 최근에 정적 팩토리 메서드에 대해 알아봤었는데, List.of()도 정적 팩토리 메서드라길래 더 관심이 갔다. public static void main(String[] args) { // 생성자 방식 List arrayList = new ArrayList(); arrayList.add(1); arrayList.add(2); arrayList.add(3); // Arrays 클래스의 asList 메서드 List asList = Arrays.asList(1, 2, 3); // List 인터페이스의 of 메서드 (jdk 9) List l..
listlst = []lst = list()같은 방식으로 생성 extendlst1 = [1, 5, 1]lst2 = ['Hello', 'Python', 0.999]lst1.extend(lst2)print(lst1) list comprehensionlst = []for i in range(10): if i % 2 == 0: lst.append(i) lst = [i for i in range(10) if i % 2 == 0]>> [0, 2, 4, 6, 8] matrix = [[j for j in range(3)] for i in range(4)]print(matrix)>> [[0, 0, 0], [0, 1, 2], [0, 2, 4], [0, 3, 6]]ma..
최근 객체지향에 대해 공부하면서 많은 사람들의 코드를 보며 눈으로 배우는 재미를 느끼고 있다. 그 중 정적 팩토리 메서드라는 내용에 대해 알아보았다. 정적 팩토리 메서드란?여기서 팩토리라는 용어는 GoF 디자인 패턴 중 팩토리 패턴에서 유래한 이 단어는 객체를 생성하는 역할을 분리하겠다는 취지가 담겨있다. 즉, 객체 생성의 역할을 하는 클래스 메서드로 요약할 수 있다. 예시를 들어보자면예시1public static LocalTime of(int hour, int minute) { ChronoField.HOUR_OF_DAY.checkValidValue((long)hour); if (minute == 0) { return HOURS[hour]; } else { ChronoField.MINUT..

isPresent() 메소드 - Boolean 타입 - Optional 객체가 값을 가지고 있다면 true, 값이 없다면 false 리턴 예시) if(user.isPresent()) { System.out.println("이미 존재하는 이메일"); } else ~~~~~ ifPresent() 메소드 - void 타입 - ifPresent()는 Optional 객체가 값을 가지고 있으면 실행, 값이 없으면 넘어감. 예시) isPresent() 메소드 = true,false 체크 ifPresent() 메소드 = 값을 가지고 있는지 확인 후 예외처리 orElseThrow() 메소드 Optional의 인자가 null일 경우 예외처리를 시킨다.
Optional이란? - 개발을 할 때 가장 많이 발생하는 예외 중 하나가 바로 NPE(NullPointerException)이다. NPE를 피하려면 null 여부를 검사 해야 하는데 null 검사를 해야하는 변수가 많은 경우 코드가 복잡해지고 번거로워 지기 때문에 이를 방지할수 있도록 도와준다. -Optional는 null이 올 수 있는 값을 감싸는 Wrapper 클래스로, 참조하더라도 NPE가 발생하지 않도록 도와준다. Optional 활용하기 Optional.empty() - 값이 Null인 경우 Optional은 Wrapper 클래스이기 때문에 값이 없을 수도 있는데, 이때는 Optional.empty()로 생성할 수 있다. Optional optional = Optional.empty(); Sy..

람다(Lambda) - 현대적 프로그래밍 기법 = 객체지향 프로그래밍 + 함수적 프로그래밍 - 자바 8버전부터 함수적 프로그래밍 지원 스트림(Stream) 1. 람다식으로 요소 처리를 제공 2. 내부 반복자를 사용하므로 병렬처리가 쉽다. -> 컬랙션 내부에서 객체를 반복시킬 것인가는 컬렉션에게 맡기고, 개발자는 객체 처리 코드에만 집중할 수 있다. 스트림은 '중간처리' 와 '최종처리'를 할 수 있다. 람다식과 스트림 import java.util.*; import java.util.stream.Stream; public class StreamEx01 { public static void main(String[] args) { List list = (List) Arrays.asList(10,20,30,40..