90일 차 - 스트림 활용 (23.05.09)

yvonne·2023년 5월 9일
0

📂Java

목록 보기
50/51
post-thumbnail

📝스트림 활용

📂 함수 활용하기

✔ StreamExample.java

public class StreamExample {

	public static void main(String args[]) {
   
		// 1~10까지의 합 구하기
		int sum = IntStream.rangeClosed(1, 10).sum();
		System.out.println(sum);
		System.out.println(IntStream.rangeClosed(1, 10).sum());

		// 1~100 중 짝수들의 합 구하기

		int sum2 = IntStream.rangeClosed(1, 100).filter(i -> i % 2 == 0).sum();
		System.out.println(sum2);

		// 1~100 중 홀수들의 합 구하기
		int sum3 = IntStream.rangeClosed(1, 100).filter(i -> i % 2 == 1).sum();
		System.out.println(sum3);

		// 1~10 중 짝수의 2배를 한 결과값 구하기
		IntStream.rangeClosed(1, 10).filter(i -> i % 2 == 0).map(i -> i * 2).forEach(System.out::print);
		System.out.println();

		// 1~10 중 짝수의 2배를 한 결과값의 합 구하기
		int sum4 = IntStream.rangeClosed(1, 10).filter(i -> i % 2 == 0).map(i -> i * 2).sum();
		System.out.println(sum4); 
 
  	}
  }
  • 결과



📂 스트림 활용 - 성적 평균 구하기

✔ StreamExample.java

class Grade {
	private String name;
	private int kor;
	private int eng;
	private int math;

	public Grade() {
	}

	public Grade(String name, int kor, int eng, int math) {
		super();
		this.name = name;
		this.kor = kor;
		this.eng = eng;
		this.math = math;
	}

	public String getName() {
		return name;
	}

	public double getAvg() {
		double avg = (kor + eng + math) / 3.0;
		return avg;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getKor() {
		return kor;
	}

	public void setKor(int kor) {
		this.kor = kor;
	}

	public int getEng() {
		return eng;
	}

	public void setEng(int eng) {
		this.eng = eng;
	}

	public int getMath() {
		return math;
	}

	public void setMath(int math) {
		this.math = math;
	}

}

public class StreamExample {

	public static void main(String args[]) {
List<Grade> gradeList = new ArrayList<Grade>();
		gradeList.add(new Grade("홍길동", 90, 100, 85));
		gradeList.add(new Grade("홍길순", 80, 70, 95));
		gradeList.add(new Grade("홍길지", 70, 100, 100));
		gradeList.add(new Grade("허동동", 95, 90, 95));

		// 📍 1. 각각의 멤버들의 평균 구하기
		gradeList.stream().forEach(grade -> {

			System.out.println(grade.getName() + ":" + grade.getAvg());

		});
		System.out.println();

		// 📍 2. 허씨는 결과값에서 제외하기

		gradeList.stream().filter(grade -> grade.getName().contains("홍")).forEach(grade -> {
			System.out.println(grade.getName() + ":" + grade.getAvg());

		});
		System.out.println("--------------다른 방법--------------");
		gradeList.stream().filter(grade -> !grade.getName().contains("허")).forEach(grade -> {
			System.out.println(grade.getName() + ":" + grade.getAvg());

		});
		System.out.println();
		
		// 📍 3. 국어 점수가 90점 이상인 사람만 출력
		gradeList.stream().filter(grade -> grade.getKor() >= 90).forEach(grade -> {
			System.out.println(grade.getName() + ":" + grade.getAvg());

		});

	}
}
  • 결과
profile
개발 연습장

0개의 댓글