스트림 문제 2

스터디에서 지웅님이 발표하신 부분을 가져왔습니다.

List<String> strList = Arrays.asList("jiwoong", "", "hyungjoon", "", 
"minseung", "hyunjoon","yoochul","Tea0");

빈 문자열의 개수를 출력하세요.(filter , isEmpty)

  • long count = strList.stream() .filter(x -> x.isEmpty()) .count();
            System.out.println("count = " + count);

h로 시작하는 문자열의 개수를 출력하세요(startsWith)

  • long count1 = strList.stream() .filter(x -> x.startsWith("h")) .count();
            System.out.println("count1 = " + count1);

길이가 2 이상인 문자열만 따로 리스트에 저장해주세요(toList)

  • List<String> filtered = strList.stream() .filter(x -> x.length()> 2) .collect(Collectors.toList());
            System.out.println("filtered = " + filtered);

백준 문제 스트림으로 풀기

최댓값문제

2562번: 최댓값arrow-up-right

template

나머지 문제

3052번: 나머지arrow-up-right

정렬 문제

1181번: 단어 정렬arrow-up-right

문제1

아래와 같은 데이터가 저장된 리스트가 있다고 하자.

문제 1-1

List에 저장된 단어들의 접두사가 각각 몇개씩 있는지 Map<String, Integer>으로 변환하여라. ex) ("T", 1), ("a", 2) ...

ex)

문제 1-2

List에 저장된 단어들 중에서 단어의 길이가 2 이상인 경우에만, 모든 단어를 대문자로 변환하여 스페이스로 구분한 하나의 문자열로 합한 결과를 반환하여라. ex) ["Hello", "a", "Island", "b","mentor"] -> “HIM”

문제 2

문제 2.1

위와 같은 숫자 리스트가 있을 때 모든 숫자 쌍의 배열 리스트를 반환하여라. ex) numbers1 = [1,2,3], numbers2 = [3,4] -> [(1,3), (1,4), (2,3), (2,4), (3,3), (3,4)]

  • ex)

문제 2.2

위와 같은 숫자 리스트가 있을 때 모든 숫자 쌍의 곱이 가장 큰 값을 반환하여라. ex) numbers1 = [1,2,3], numbers2 = [3,4] -> 12

문제3

아래와 같은 데이터를 갖는 거래자와 거래 내역 클래스가 있다고 하자. (생성자 및 Getter, Setter 등은 생략)

또한 데이터는 아래와 같이 초기화되어 있다.

문제 3.1

2020년에 일어난 모든 거래 내역을 찾아 거래값을 기준으로 오름차순 정렬하라.

template

문제 3.2

거래 내역이 있는 거래자가 근무하는 모든 도시를 중복 없이 나열하라.

문제 3.3

서울에서 근무하는 모든 거래자를 찾아서 이름순서대로 정렬하라.

문제 3.4

모든 거래자의 이름을 순서대로 정렬하라.

문제 3.5

부산에 거래자가 있는지를 확인하라.

문제 3.6

서울에 거주하는 거래자의 모든 거래 내역을 구하라.

문제 3.7

모든 거래 내역중에서 최댓값과 최솟값을 구하라. 단, 최댓값은 reduce를 이용하고 최솟값은 stream의 min()을 이용하라.

문제 4

문제 4.1

문자열 배열 String[] strArr = {"aaa","bb","c","dddd"}의 모든 문자열의 길이를 더한 결과를 출력하여라.

문제 4.2

문자열 배열 String[] strArr = {"aaa","bb","c","dddd"}의 문자열 중에서 가장 긴 것의 길이를 출력하시오.

문제 4.3

임의의 로또번호(1~45)를 정렬해서 출력하시오. (newRandom().ints(1, 46)

문제 4.4

두 개의 주사위를 굴려서 나온 눈의 합이 6인 경우를 모두 출력하시오.

문제 5

아래와 같은 학생 클래스가 있다고 하자. (생성자 및 Getter 등은 생략)

또한 데이터는 Student[] stuArr에 저장되어 있다.

template

문제 6.1

stuArr에서 불합격(150점 미만)한 학생의 수를 남자와 여자로 구별하여라. (Boolean, List)

문제 6.2

각 반별 총점을 학년 별로 나누어 구하여라 (Map<Integer, Map<Integer, Integer>>)

Last updated