본문 바로가기

웹 개발/Java

[Web_JAVA] 34

● Stream

1. stream() : Stream타입으로 변경(stream에 정의된 기능들을 사용할 수 있는 상태로 변경)

2. map() : 기존의 데이터를 다른 데이터로 변경

3. filter() : 조건식을 전달하여 true인 값만 추출

4. collect() : 결과를 원하는 타입으로 변경

5. forEach() : 향상된 for문과 같이 앞의 반복자(순서 O, 여러 개의 값을 가짐)의 요소를 각각 가져온 후 로직 작성 가능

6. sorted() : 오름차순 정렬

7. IntStream.range(start, end) : 특정 범위의 여러 개의 값을 생성할 때 사용한다. end는 포함시키지 않는다.

 

 


 

실습(JSON)

※ 코드 입력 전에 lib를 build path로 프로젝트에 추가하기

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
 
//JSON : 데이터 교환 방식(형식)
//"{"로 시작해서 "}"로 마친다.
public class JSONTest {
	public static void main(String[] args) {
		
		// JSONObject : Map 구조
		JSONObject jsonObj = new JSONObject();  // json 형식으로 만들도록 도와준다.(json이 아니다.)

		// HashMap과 비슷하다.
		jsonObj.put("id", "hds1234");
		jsonObj.put("pw", "1234");
		jsonObj.put("name", "한동석");

		// JSONArray : ArrayList 구조
		JSONArray jsonArr = new JSONArray();

		// ArrayList와 비슷하다.
		jsonArr.add(jsonObj);
		jsonArr.add(jsonObj);
		
		System.out.println(jsonArr.toJSONString());  // toJSONString() : json 형식의 문자열로 리턴한다.
		System.out.println(((JSONObject)jsonArr.get(0)).get("name"));  // 값 가져오기

	}
}

 

결과

 

 

 

 

실습(Stream)

import java.util.HashMap;

public class StreamTest {
	public static void main(String[] args) {
		HashMap<String, Integer> chinaTown = new HashMap<>(); 
		
		chinaTown.put("짜장면", 4500);
		chinaTown.put("짬뽕", 5000);
		chinaTown.put("탕수육", 14500);
		
	
		//여러 개를 가지고 있는 컬렉션 객체에서 forEach메소드를 사용할 수 있다.
		//forEach 메소드에는 Consumer 인터페이스 타입의 값을 전달해야 한다.
		//Consumer는 함수형 인터페이스이기 때문에 람다식을 사용할 수 있다.
		//매개변수에는 컬렉션 객체 안에 들어있는 값들이 순서대로 담기고,
		//화살표 뒤에서는 구현하고 싶은 문장을 작성한다.
//		chinaTown.values().stream().forEach(price -> System.out.println(price));
//		chinaTown.values().forEach(price -> System.out.println(price));

		// values() : value 값만 가져온다.
		// 마지막 메소드(println)에 chinaTown.values() 값이 알아서 하나식 들어간다.
		chinaTown.values().forEach(System.out::println);
		
	}
}

 

결과

 

 

 

'웹 개발 > Java' 카테고리의 다른 글

[Web_JAVA] 36  (0) 2022.03.22
[Web_JAVA] 35  (0) 2022.03.21
[Web_JAVA] 33  (0) 2022.03.19
[Web_JAVA] 32  (0) 2022.03.18
[Web_JAVA] 31  (0) 2022.03.17