์ค๋ ํ ๊ณต๋ถ๐ง
- Java ๋ฌธ๋ฒ ์ข ํฉ๋ฐ_5์ฃผ์ฐจ ๊ฐ์ ์์
์ค๋ ์ป์ ๋ด์ฉ ์ ๋ฆฌโ๏ธ
5์ฃผ์ฐจ ๊ฐ์ ์์ ๋ด์ฉ - ์ฑ ๋ถ๋ฅํด์ ์กฐํํ๊ธฐ
- ๋จผ์ ์์ ์ฝ๋๋ฅผ ์ธํ ๋ฆฌ์ ์ด์ ์ธํ ํด์ค๋ค.
๋๋ณด๊ธฐ
- Main.java
package homework05;
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
List<Book> bookList = Arrays.asList(
new Book(1L, "๋ชจ๋์ ๋ฅ๋ฌ๋", "์กฐํํธ", "IT", 21600),
new Book(2L, "์ด๋์ฐ์ ๊ฒ์ ์ํ", "์ด๋์ฐ", "IT", 40500),
new Book(3L, "์๋ฐ ์น ๊ฐ๋ฐ ์ํฌ๋ถ", "๊ตฌ๋ฉ๊ฐ๊ฒ ์ฝ๋ฉ๋จ", "IT", 31500),
new Book(4L, "์ค์ ์๊ณ์ด ๋ถ์", "์์ผ๋ฆฐ ๋์จ", "IT", 34200),
new Book(5L, "๋ฐ์ดํฐ ๋ถ์๊ฐ์ ์ซ์์ ๊ฐ", "๊ถ์ ๋ฏผ", "IT", 14400),
new Book(6L, "์คํ๋ง ๋ถํธ ์ค์ ํ์ฉ ๋ง์คํฐ", "๊ทธ๋ ํดํค์คํธ", "IT", 25200),
new Book(7L, "์ค๋๋ถํฐ IT๋ฅผ ์์ํฉ๋๋ค", "๊ณ ์ฝ๋", "IT", 16200),
new Book(8L, "๊ทธ๋ฆผ์ผ๋ก ์ดํดํ๋ ์ธ์ง๊ณผํ", "๊ธฐํํ๋ผ ์์๋
ธ๋ฆฌ", "IT", 16200),
new Book(9L, "๊ด์ฐฎ์, ๊ทธ ๊ธธ ๋์ ํ๋ณต์ด ๊ธฐ๋ค๋ฆด ๊ฑฐ์ผ", "์๋ฏธ๋", "์ฌํ", 17100),
new Book(10L, "์ฌํ์ ์ด์ ", "๊น์ํ", "์ฌํ", 12150),
new Book(11L, "์ฌํ์ ์๊ฐ", "๊น์ง์ ", "์ฌํ", 16200),
new Book(12L, "๋ก๋ด ์๋ ์ด์๋จ๊ธฐ", "์ผ๊ทํ", "์ญ์ฌ", 14850),
new Book(13L, "๊ฒฝ์ ์ ์์ ํ์ญ์ฌ", "์ด์๋ฐฐ", "์ญ์ฌ", 15750),
new Book(14L, "100๊ฐ์ง ๋๋ฌผ๋ก ์ฝ๋ ์ธ๊ณ์ฌ", "์ฌ์ด๋จผ ๋ฐ์ฆ", "์ญ์ฌ", 29700),
new Book(15L, "k ๋ฐฐํฐ๋ฆฌ ๋ ๋ณผ๋ฃจ์
", "๋ฐ์ํ", "๊ฒฝ์ ", 17100),
new Book(16L, "์ ํ์ค์ ๊ฒฝ์ ํ ๋ ์ํผ", "์ฅํ์ค", "๊ฒฝ์ ", 16200),
new Book(17L, "๋ ๋ฒ๋ฆฌ์ง", "๋กญ ๋ฌด์ด", "๊ฒฝ์ ", 16200)
);
// ๋ฌธ์ ์ ํด๋นํ๋ ์ฝ๋ ์์ฑ ๋ถ๋ถ
}
}
- Book.java
package homework05;
public class Book {
// ๋ถ๋ฅ๋ฒํธ
private Long id;
// ์ฑ
์ด๋ฆ
private String bookName;
// ์๊ฐ ์ด๋ฆ
private String author;
// ์นดํ
๊ณ ๋ฆฌ
private String category;
// ๊ฐ๊ฒฉ
private double price;
public Book(Long id, String bookName, String author, String category, double price) {
this.id = id;
this.bookName = bookName;
this.author = author;
this.category = category;
this.price = price;
}
public String getBookName() {
return bookName;
}
public String getCategory() {
return category;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
์กฐ๊ฑด1) ์นดํ ๊ณ ๋ฆฌ๊ฐ ์ฌํ์ธ ์ฑ ์ ๋ชฉ ์กฐํ
๋๋ณด๊ธฐ
// ์นดํ
๊ณ ๋ฆฌ๊ฐ ์ฌํ์ธ ์ฑ
์ ๋ชฉ ์กฐํ
bookList.stream().filter(book -> book.getCategory().equals("์ฌํ"))
.forEach(f -> System.out.println("์นดํ
๊ณ ๋ฆฌ๊ฐ ์ฌํ์ธ ์ฑ
์ ๋ชฉ: " + f.getBookName()));
System.out.println();
- filter( book -> book.getCategory( ).equals("์ฌํ"))
- ์นดํ ๊ณ ๋ฆฌ๊ฐ "์ฌํ"์ธ ์ฑ ์ ๋ถ๋ฅํ๋ค.
- forEach( f -> System.out.println("์นดํ
๊ณ ๋ฆฌ๊ฐ ์ฌํ์ธ ์ฑ
์ ๋ชฉ : " + f.getBookName( )));
- ์นดํ ๊ณ ๋ฆฌ๊ฐ "์ฌํ"์ธ ์ฑ ์ ์ถ๋ ฅํ๋ค.
์กฐ๊ฑด2) ๊ฐ๊ฒฉ์ด 16,200์ ์ดํ์ธ ์ฑ ์ ๋ชฉ ์กฐํ
๋๋ณด๊ธฐ
// ๊ฐ๊ฒฉ์ด 16,200์ ์ดํ์ธ ์ฑ
์ ๋ชฉ ์กฐํ
bookList.stream().filter( book -> book.getPrice() <= 16200)
.forEach( f -> System.out.println("๊ฐ๊ฒฉ 16200์ ์ดํ ์ฑ
์ ๋ชฉ: " + f.getBookName()));
System.out.println();
- filter( book -> book.getprice( ) <= 16200)
- ๊ฐ๊ฒฉ์ด 16,200์ ์ดํ์ธ ์ฑ ์ ๋ถ๋ฅํ๋ค.
- forEach( f -> System.out.println("๊ฐ๊ฒฉ 16,200์ ์ดํ ์ฑ
์ ๋ชฉ : " + f.getBookName( )))
- ๊ฐ๊ฒฉ์ด 16,200์ ์ดํ์ธ ์ฑ ์ ์ ๋ชฉ์ ์ถ๋ ฅํ๋ค.
์กฐ๊ฑด3) ์ฑ ์ ๋ชฉ์ "๊ฒฝ์ ”๋ผ๋ ์ฉ์ด๊ฐ ๋ค์ด๊ฐ ์ฑ ์ ๋ชฉ ์กฐํ
๋๋ณด๊ธฐ
// ์ฑ
์ ๋ชฉ์ "๊ฒฝ์ "๋ผ๋ ์ฉ์ด๊ฐ ๋ค์ด๊ฐ ์ฑ
์ ๋ชฉ ์กฐํ
bookList.stream().filter(book -> book.getBookName().contains("๊ฒฝ์ "))
.forEach(f -> System.out.println("์ฑ
์ ๋ชฉ์ '๊ฒฝ์ '๊ฐ ํฌํจ๋ ์ฑ
์ ๋ชฉ: " + f.getBookName()));
System.out.println();
- filter( book -> book.getBookName( ). contains("๊ฒฝ์ "))
- ์ฑ ์ ๋ชฉ์ "๊ฒฝ์ "๊ฐ ํฌํจ๋ ์ฑ ์ ๋ถ๋ฅํ๋ค.
- forEach(f -> System.out.println("์ฑ
์ ๋ชฉ์ '๊ฒฝ์ '๊ฐ ํฌํจ๋ ์ฑ
์ ๋ชฉ : " + f.getbookName( )))
- ์ฑ ์ ๋ชฉ์ "๊ฒฝ์ "๊ฐ ๋ค์ด๊ฐ ์ฑ ์ ์ ๋ชฉ์ ์ถ๋ ฅํ๋ค.
์กฐ๊ฑด4) ๊ฐ๊ฒฉ์ด ๊ฐ์ฅ ๋น์ผ ์ฑ ๊ฐ๊ฒฉ ์กฐํ
๋๋ณด๊ธฐ
// ๊ฐ๊ฒฉ์ด ๊ฐ์ฅ ๋น์ผ ์ฑ
๊ฐ๊ฒฉ ์กฐํ
double maxPrice = bookList.stream().mapToDouble(Book::getPrice)
.max().getAsDouble();
System.out.println("์ฑ
๋ชฉ๋ก ์ค ๊ฐ์ฅ ๋น์ผ ๊ธ์ก: " + maxPrice);
System.out.println();
- mapToDouble(Book::getPrice)
- ์ฑ ์ ๊ฐ๊ฒฉ์ double ํ์ ์ผ๋ก ๊ฐ์ ธ์จ๋ค.
- max( ).getAsDouble( )
- ๊ฐ์ ธ์จ ๊ฐ๊ฒฉ ์ค ์ต๋๊ฐ์ ๊ตฌํ๊ณ ์ค์ ๊ฐ์ผ๋ก ๊บผ๋ธ๋ค.
- System.out.println("์ฑ
์ ๋ชฉ ์ค ๊ฐ์ฅ ๋น์ผ ๊ธ์ก : " + maxPrice)
- ๊ฐ์ฅ ๋น์ผ ์ฑ ์ ์ ๋ชฉ์ ์ถ๋ ฅํ๋ค.
์กฐ๊ฑด5) ์นดํ ๊ณ ๋ฆฌ๊ฐ IT์ธ ์ฑ ๋ค์ ๊ฐ๊ฒฉ ํฉ ์กฐํ
๋๋ณด๊ธฐ
// ์นดํ
๊ณ ๋ฆฌ๊ฐ IT์ธ ์ฑ
๋ค ๊ฐ๊ฒฉ ํฉ ์กฐํ
double sumPrice = bookList.stream().filter(book -> book.getCategory().equals("IT"))
.mapToDouble(Book::getPrice)
.sum();
System.out.println("์นดํ
๊ณ ๋ฆฌ IT ์ฑ
๋ค์ ๊ฐ๊ฒฉ ํฉ: " + sumPrice);
System.out.println();
- filter(book -> book.getCategory( ). equals("IT"))
- ์นดํ ๊ณ ๋ฆฌ๊ฐ "IT"์ธ ์ฑ ์ ๋ถ๋ฅํ๋ค.
- mapToDouble(Book::getPrice)
- ์ฑ ์ ๊ฐ๊ฒฉ์ double ํ์ ์ผ๋ก ๊ฐ์ ธ์จ๋ค.
- sum( )
- ๊ฐ๊ฒฉ์ ํฉ๊ณ๋ฅผ ๊ตฌํ๋ค.
- System.out.println("์นดํ
๊ณ ๋ฆฌ IT ์ฑ
๋ค์ ๊ฐ๊ฒฉ ํฉ : " + sumPrice)
- "IT" ์นดํ ๊ณ ๋ฆฌ ์ฑ ๋ค์ ๊ฐ๊ฒฉ ํฉ์ ์ถ๋ ฅํ๋ค.
์กฐ๊ฑด6) IT ์ฑ ํ ์ธ ์ด๋ฒคํธ!
๋๋ณด๊ธฐ
// IT ์ฑ
ํ ์ธ ์ด๋ฒคํธ
// ์นดํ
๊ณ ๋ฆฌ๊ฐ IT ์ธ ์ฑ
๋ค์ ๊ฐ๊ฒฉ์ 40% ํ ์ธํ์ฌ ์๋ก์ด ์ฑ
๋ฆฌ์คํธ ๋ง๋ค๊ธฐ, discountedBookList
List<Book> discountedBookList = bookList.stream().filter(book -> book.getCategory().equals("IT"))
.map(book -> {
book.setPrice(book.getPrice() * 0.6);
return book;
}).toList();
for (Book book : discountedBookList) {
System.out.println("ํ ์ธ๋ ์ฑ
์ ๋ชฉ: " + book.getBookName());
System.out.println("ํ ์ธ๋ ์ฑ
๊ฐ๊ฒฉ: " + book.getPrice() + "\n");
}
- List<Book> discountedBookList = bookList.stream( ). filter(book -> book.getCategory( ).equals("IT"))
- ์นดํ ๊ณ ๋ฆฌ๊ฐ "IT"์ธ ์ฑ ์ ๋ถ๋ฅํด์ discountedBookList ๋ฆฌ์คํธ์ ์ ์ฅํ๋ค.
- book.setPrice(book.getprice( ) * 0.6)
- ์ฑ ์ ๊ฐ๊ฒฉ์ 40% ํ ์ธ๋ ๊ฐ๊ฒฉ์ผ๋ก ์ค์ ํ๋ค.
- ํฅ์๋ for๋ฌธ์ ์ด์ฉํด์ ๋ฆฌ์คํธ๋ฅผ ์ํํ๋ฉฐ ์ฑ ์ ์ ๋ชฉ๊ณผ ๊ฐ๊ฒฉ์ ์ถ๋ ฅํ๋ค.
๋ด์ผ ๊ณํโฐ
- ํค์ค์คํฌ ๊ณผ์ ๋์ !!
'Today I Learned(TIL) > ์คํ๋ฅดํ ๋ด์ผ๋ฐฐ์์บ ํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด_Day 16 (0) | 2024.11.26 |
---|---|
ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด_Day 15 (0) | 2024.11.26 |
ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด_Day 12 (1) | 2024.11.23 |
ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด_Day 11 (1) | 2024.11.22 |
ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด_Day 10 (3) | 2024.11.20 |