본문 바로가기

java8

[Java] String.matches() 대신 Pattern을 사용하자 🤔 String.matches()는 어떻게 구현되어 있을까? // String.java public boolean matches(String regex) { return Pattern.matches(regex, this); } 자바에서 String 클래스의 matches() 메서드에서 내부적으로 Pattern 클래스의 matches 메서드를 호출하고 있는 것을 볼 수 있다. 그렇다면 Pattern의 matches() 메서드는 어떤 방식으로 정규식과 문자열의 매칭 여부를 확인할까? // Pattern.java public static boolean matches(String regex, CharSequence input) { Pattern p = Pattern.compile(regex); Matcher m.. 2024. 3. 17.
[우아한테크코스 5주차] 블랙잭의 위험성에 대하여 🃏 📌 블랙잭은 도박 아닌가요? 우리가 블랙잭을 멀리해야 하는 이유는 블랙잭이 카지노에서 행해지는 도박성 카드 게임이라서가 아니다. 그냥 구현이 너무 어렵기 때문이다. 스탠드(Stand), 힛(Hit), 핸드(Hand), 버스트(Bust), 블랙잭(Blackjack) 처음 듣는 용어들 투성이에 정신이 혼미했다. 대부분의 크루들이 나와 같이 블랙잭에 대해 생소한 듯 보였으나, 내 페어는 게임의 룰에 대해 매우 잘 알고 있었다. (캠퍼스에 트럼프 카드도 들고 왔었는데 사용감을 봐서는 돌잡이 때 카드를 잡은 게 아닐까 하는 합리적 의심이...) 아마 도박광 페어가 없었다면 지금쯤 미션 못 끝내서 퇴소당하고 엉엉 울고 있었을지도 🫨 📌 [1단계] - 블랙잭 게임 실행 페어 프로그래밍 절망 같은 희망 편 👀 나는 이.. 2024. 3. 16.
[자바] 스트림을 이용한 데이터 수집 - 그룹화 9.1 그룹화 1. Collectors.groupingBy 데이터를 하나의 카테고리를 주제로 분류하고 싶을 경우에는 Collectors의 groupingBy 메서드를 사용하면 됩니다. Map bookesByCategory = bookshelf.stream().collect(groupingBy(Book::getCategory)); 위와 같이 코드를 작성하면 Category 종류별로 관련된 책들의 리스트를 조회할 수 있습니다. 그러나 페이지에 따라 책이 가벼운지 무거운지 알고 싶은 경우에는 조금 더 복잡한 코드를 작성해야 합니다. Map booksByThickness = bookshelf.stream() .collect(groupingBy(book -> { if (book.getPage() < 100) re.. 2023. 10. 10.
[자바] 스트림을 이용한 데이터 수집 - Collectors Collectors란? Collectors는 스트림을 처리하고 요소를 수집하는 데 사용되는 유틸리티 클래스로, 해당 클래스의 메서드들을 사용하면 스트림을 쉽게 처리할 수 있습니다. 8.1 Collectors.counting()과 count() Stream 요소의 개수를 구하는 방법은 두 가지가 있습니다. List list = Arrays.asList(1, 2, 3, 4, 5); long count = list.stream().filter(i -> i % 2 == 0).count(); List list = Arrays.asList(1, 2, 3, 4, 5); long count = list.stream().filter(i -> i % 2 == 0).collect(Collectors.counting()); .. 2023. 10. 5.