본문 바로가기

자바(JAVA)
[자바(Java)] 스트림 활용

- 문자열에서 특정 문자의 개수 세기

문자열명.chars().filter(c -> c == 원하는 문자).count();

 

public class Ex02 {
	public static void main(String[] args) {
		String str = "apple";
		long cnt = str.chars().filter(c -> c == 'p').count();
		
		System.out.println(cnt);
	}
}

- 0에서 n까지의 수 중 조건을 만족하는 수만 배열로 반환하기

import java.util.stream.IntStream;

IntStream.rangeClosed(0, n).filter(조건 람다식).toArray();

import java.util.Arrays;
import java.util.stream.IntStream;

public class Ex03 {
	public static void main(String[] args) {
		System.out.println(Arrays.toString(IntStream.rangeClosed(0, 10).filter(x -> x%2 == 0).toArray()));
	}
}

- 0에서 n까지의 수 중 조건을 만족하는 수의 개수 세기

import java.util.stream.IntStream;

IntStream.rangeClosed(0, n).filter(조건 람다식).count();


import java.util.stream.IntStream;

public class Ex01 {
	public static void main(String[] args) {
		long cnt = IntStream.rangeClosed(1, 10).filter(x -> x%2 == 0).count();
		
		System.out.println(cnt);
	}
}

- 배열에서 특정 값을 가지고 있는지 확인하기

import java.util.Arrays;

Arrays.stream(배열1).anyMatch(배열2[index]::equals);

import java.util.Arrays;

public class Ex04 {
	public static void main(String[] args) {
		String[] strArr1 = {"banana", "apple", "grape", "melon", "strawberry"};
		String[] strArr2 = {"mango", "apple", "watermelon", "pear", "strawberry"};
		
		boolean contains = Arrays.stream(strArr1).anyMatch("grape"::equals);
		System.out.println(contains);
		
		for(int i=0; i<strArr1.length; i++) {
			System.out.println("strArr1 contains "+ strArr2[i] + "? = " + Arrays.stream(strArr1).anyMatch(strArr2[i]::equals));
		}
	}
}

-  int 리스트를 배열로 변환하기

리스트명.stream().mapToInt(x -> x).toArray();

import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;

public class Ex05 {
	public static void main(String[] args) {
		List<Integer> list = new ArrayList<>(); 
		
		for(int i=1; i<11; i++) {
			list.add(i);
		}
		
		int[] arr = list.stream().mapToInt(x -> x).toArray();
		
		System.out.println(Arrays.toString(arr));
		
		for(int i =0; i<arr.length; i++) {
			System.out.println("arr[" + i + "] = " + arr[i]);
		}
		
	}
}

-  String 리스트를 배열로 변환하기

리스트명.stream().map(s -> s).toArray(String[]::new);

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Ex13 {
	public static void main(String[] args) {
		List<String> mapToString = new ArrayList<>();
	
		for(int i=0; i<10; i++) {
			mapToString.add("hello");            
        }
		
        String[] answer = mapToString.stream().map(s -> s).toArray(String[]::new);
        
        System.out.println(Arrays.toString(answer));
	}
}

-  int 리스트 숫자 원소들의 합 구하기

number.stream().mapToInt(Integer::intValue).summaryStatistics().getSum();

import java.util.ArrayList;
import java.util.List;

public class Ex18 {
	public static void main(String[] args) {
		String s2 = "10 20 30 40"; 
		
		String[] numArr = s2.split(" ");
		List<Integer> number = new ArrayList<>();
		
		for(String s : numArr) {
			number.add(Integer.valueOf(s));
		}
		
		System.out.println(number.stream()
                .mapToInt(Integer::intValue)
                .summaryStatistics().getSum());
	}
}

-  int 리스트 숫자 원소들의 평균 구하기

number.stream().mapToInt(Integer::intValue).summaryStatistics().getAverage();

import java.util.ArrayList;
import java.util.List;

public class Ex18 {
	public static void main(String[] args) {
		String s2 = "10 20 30 40"; 
		
		String[] numArr = s2.split(" ");
		List<Integer> number = new ArrayList<>();
		
		for(String s : numArr) {
			number.add(Integer.valueOf(s));
		}
		
		System.out.println(number.stream()
                .mapToInt(Integer::intValue)
                .summaryStatistics().getAverage());
	}
}

 

import java.util.ArrayList;
import java.util.List;

public class Ex18 {
	public static void main(String[] args) {
		String s2 = "10 20 30 40"; 
		
		String[] numArr = s2.split(" ");
		List<Integer> number = new ArrayList<>();
		
		for(String s : numArr) {
			number.add(Integer.valueOf(s));
		}
		
		System.out.println((int)(number.stream()
                .mapToInt(Integer::intValue)
                .summaryStatistics().getAverage()));
	}
}

-  int 리스트 숫자 원소들의 최댓값 구하기

number.stream().mapToInt(Integer::intValue).summaryStatistics().getMax();

import java.util.ArrayList;
import java.util.List;

public class Ex18 {
	public static void main(String[] args) {
		String s2 = "10 20 30 40"; 
		
		String[] numArr = s2.split(" ");
		List<Integer> number = new ArrayList<>();
		
		for(String s : numArr) {
			number.add(Integer.valueOf(s));
		}
		
		System.out.println(number.stream()
                .mapToInt(Integer::intValue)
                .summaryStatistics().getMax());
	}
}

-  int 리스트 숫자 원소들의 최솟값 구하기

number.stream().mapToInt(Integer::intValue).summaryStatistics().getMin();

 

import java.util.ArrayList;
import java.util.List;

public class Ex18 {
	public static void main(String[] args) {
		String s2 = "10 20 30 40"; 
		
		String[] numArr = s2.split(" ");
		List<Integer> number = new ArrayList<>();
		
		for(String s : numArr) {
			number.add(Integer.valueOf(s));
		}
		
		System.out.println(number.stream()
                .mapToInt(Integer::intValue)
                .summaryStatistics().getMin());
	}
}

'자바(JAVA)' 카테고리의 다른 글

[자바(Java)] 10진수 <-> 2진수 변환  (0) 2023.01.02
[자바(Java)] char <-> int 변환  (0) 2022.12.31
[자바(Java)] 문자열 <-> 배열 변환  (0) 2022.12.31
[자바(Java)] 스트림(stream)  (0) 2022.12.20
[자바(Java)] 람다식  (0) 2022.12.20