티스토리 뷰

자바 스트림(Stream)이란, Java 8부터 추가된 기술로 람다(Lambda) 를 활용해 배열과 컬렉션을 함수형으로 간단하게 처리할 수 있는 기술입니다. 아래는 간단한 사용법에 대해 알아보겠습니다.


1. foreach

// 컬렉션 출력
List<String> list = new ArrayList();
list.add("Element1"); 
list.add("Element2"); 
list.add("Element3");
list.forEach(System.out::println)

// 리스트 출력
int result[] = {1,2,3};
Arrays.stream(result).forEach(i -> System.out.print(i+""));



2. sum

// 각 자리수의 합
int n = 123;
int result = String.valueOf(n).chars().map(Character::getNumericValue).sum();
System.out.println(result);



3. filter

Arrays.stream(myString.split("[A-Z|a-z]"))
.filter(s -> !s.isEmpty()).mapToInt(Integer::parseInt).sum()



4. reduce

BigInteger n = IntStream
	.rangeClosed(1, balls)
    .mapToObj(BigInteger::valueOf)
    .reduce(BigInteger.ONE, BigInteger::multiply)



5. sort

Arrays.sort(strings, (a, b) -> {
  char charA = a.charAt(n);
  char charB = b.charAt(n);
  if (charA == charB) {
    return a.compareTo(b);
  } else {
    return Character.compare(charA, charB);
  }
});



6. groupingBy

Map<Integer, Long> map = Arrays.stream(array)
  .mapToObj(i -> i)
  .collect(
    Collectors.groupingBy(
    Function.identity(), Collectors.counting()
    )
  );



감사합니다.

'프로그래밍 언어 > Java' 카테고리의 다른 글

[Java] 디자인 패턴 종류  (0) 2024.05.20
[Java] 이분탐색 예제  (0) 2024.05.13
[Java] JVM GC 프로세스  (0) 2024.05.13
[Java] 객체지향(OOP) 설계와 특징  (0) 2024.01.15
[Java] Enum 활용  (0) 2023.07.14
최근에 올라온 글
Total
Today
Yesterday