● 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 |