Java/자바 정리
164. 스트림 요소 출력하기 – 객체 리스트 출력 실습
코딩하는냥이
2025. 5. 23. 11:53
반응형
자바의 Stream API는 컬렉션의 요소를 간결하게 출력하거나 변환할 수 있는 기능을 제공합니다.
이번 예제에서는 Product 객체 리스트를 스트림으로 변환한 뒤,
모든 상품 정보를 출력하는 과정을 실습해보겠습니다.
📦 Product.java
package ch17.sec04;
public class Product {
private int pno, price;
private String name, company;
public Product(int pno, int price, String name, String company) {
this.pno = pno;
this.company = company;
this.name = name;
this.price = price;
}
public int getPno() {
return pno;
}
public int getPrice() {
return price;
}
public String getName() {
return name;
}
public String getCompany() {
return company;
}
public String toString() {
return new StringBuilder()
.append("{")
.append("pno : " + pno)
.append(", name : " + name)
.append(", company : " + company)
.append(", price : " + price)
.append("}")
.toString();
}
}
📌 예제 코드
package ch17.sec04;
import java.util.ArrayList;
import java.util.List;
public class StreamExample {
public static void main(String[] args) {
List<Product> list = new ArrayList<Product>();
// 5개의 상품을 무작위 가격으로 생성
for (int i = 1; i <= 5; i++)
list.add(new Product(i, (int)(Math.random() * 10000), "상품" + i, "멋진회사"));
// 스트림을 이용해 전체 상품 출력
list.stream().forEach(System.out::println);
}
}
💻 실행 결과 (예시)
{pno : 1, name : 상품1, company : 멋진회사, price : 7359}
{pno : 2, name : 상품2, company : 멋진회사, price : 118}
{pno : 3, name : 상품3, company : 멋진회사, price : 5027}
{pno : 4, name : 상품4, company : 멋진회사, price : 2643}
{pno : 5, name : 상품5, company : 멋진회사, price : 9884}
※ price는 실행할 때마다 Math.random()에 의해 변경됩니다.
💬 코드 설명
- Product 클래스는 상품 번호, 이름, 제조사, 가격 정보를 담고 있습니다.
- toString() 메서드는 상품 정보를 보기 좋게 문자열로 반환합니다.
- List<Product> 컬렉션에 5개의 상품을 동적으로 생성합니다.
- list.stream().forEach(System.out::println); 코드는
스트림을 통해 각 상품 객체를 한 줄씩 출력합니다. - System.out::println은 람다식 (x) -> System.out.println(x)의 메서드 참조 방식입니다.
💡 포인트 정리
- 스트림을 이용하면 컬렉션의 요소를 간단하고 명확하게 출력할 수 있습니다.
- forEach()는 스트림의 최종 연산으로, 각각의 요소에 대해 지정된 동작을 수행합니다.
- System.out::println처럼 메서드 참조를 활용하면 코드가 더욱 간결해집니다.
- 출력 형식을 보기 좋게 하기 위해 toString()을 적절히 오버라이딩하는 것이 중요합니다.
📌정리하자면, 이번 예제에서는 스트림을 통해 객체 리스트의 모든 요소를 출력하는 흐름을 실습했습니다.
스트림의 forEach() 메서드와 System.out::println을 활용하면,
컬렉션의 내용을 한 줄의 코드로 손쉽게 출력할 수 있습니다.
이러한 기법은 디버깅이나 로그 출력, 혹은 사용자에게 데이터를 보여줄 때 유용하게 활용됩니다.