본문 바로가기

java37

Stream & Optional & Parallel Stream 아래 코드는 특정 숫자를 비교하여 출력및 예외를 던지는 코드입니다. 1234를 비교 하기때문에 RuntimeException이 발생하게 됩니다. public class ForAndIfFilterExampleMain { public static void main(String[] args) { List integerList = List.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); Integer findNumber = null; for (int i = 0; i < integerList.size(); i++) { if(integerList.get(i).equals(1234)) { findNumber = integerList.get(i); break; } } if(findNumber == nul.. 2023. 12. 12.
Stream Stream API는 객체지향과 함께 사용하면 좋습니다. 대표적으로 for, if -> stream으로 사용할 수 있습니다. 대표적인 stream api를 알아보겠습니다. ( 자세한 stream api 는 별도의 카테코리를 만들어 진행하겠습니다 ) forEach public class ForIterationExampleMain { public static void main(String[] args) { List integerList = new ArrayList(); integerList.add(10); integerList.add(20); integerList.add(30); integerList.add(40); integerList.add(50); integerList.add(60); integerLi.. 2023. 12. 12.
슬기롭게 주석 사용하기 지나치게 많은 주석 없애기 주석이 얼마나 중요한자 한번쯤 들어습니다. 맞는말이지만 정보(이유)를 설명할 때만 그렇습니다. 그렇지 않으면 방해만 될 뿐이죠. 아래 코드는 Inventory 클래스를 보여줍니다. 텍스트를 보면 알 수 있듯이 주석이 너무 많이 들어 있습니다. 가장 중요한 주석은 아마다 TODO: 필드가 이미 초기화 되었는지(널이 아닌지) 검증한다일텐데요 public class Inventory { List supplies = new ArrayList(); int countContaminateSupplies() { // TODO: 필드가 이미 초기화 되었는지(널이 아닌지) 검증한다. int contaminatedCounter = 0; // 카운터 // 제품이 없으면 변질도 없다는 뜻이다. for.. 2023. 12. 12.
순회 하면서 컬렉션 수정하지 않기 순회하면 컬렉션 수정하지 않기 아래 소스를 보면 Contaminated가 포함 되면 컬렉션에서 제거하는 로직이다. 만약 아래처럼 remove를 통해 삭제하면 어떻게 될까? 이렇게 실행하면 List 인터페이스의 표준 구현이나 Set이나 Queue 같은 Collection 인터페이스의 구현은 ConcurrentModificationException을 던진다. List를 순회 하면서 List를 수정할 수 없습니다. public class Inventory { private List supplies = new ArrayList(); // 오염된 물품 폐기 void disposeContaminatedSupplies() { for (Supply supply : supplies) { if (supply.isConta.. 2023. 12. 12.