정렬 위주...

public class Stream01 {
	public static void main(String[] args) {
    	  System.out.println("[데이터 소스:배열]");
          String[] mountains= {"한라산","지리산","덕유산","치악산","설악산"};
          //배열의 데이터를 처리하기 위한 stream객체 생성
          Stream<String> stream1 = Arrays.stream(mountains);  //stream()은 제너릭 메소드
    	  stream1.forEach(x-> System.out.println(x)); // 이건 출력O 출력 후(최종 연산 후) stream 닫힘.
    	 // stream1.forEach(y-> System.out.println(y));  출력 안됨 그래서 stream 다시 만들어야 함 
    	 // Arrays.sort()로 배열 정렬 :원본 변경됨
            Arrays.sort(mountains);
	          for(String m : mountains) System.out.println(m);
              
          System.out.println("[stream 객체의 soreted()로 배열정렬:원본배열 변경x]");
          stream1 = Arrays.stream(mountains);
    	  stream1.sorted().forEach(y-> System.out.println(y)); //디폴트가 오름차순
    	  stream1.sorted((x,y)->y.compareTo(x)).forEach(y-> System.out.println(y));// 내림차순 정렬
    
    	  System.out.println("[데이터 소스:컬렉션]");
          List<String> lists = Arrays.asList(mountains);
          lists.stream();    //스트림객체
    	  Stream<String> stream2 = lists.stream();
          System.out.println("[Collections.sort()- 원본컬랙션변경]");
          Collections.sort(lists);
          
          System.out.println("[스트림객체의 sorted()- 원본컬랙션변경x]");
	      stream2.sorted().forEach(x->System.out.println(x));
	      System.out.println("내림차순");
	      stream2.sorted((x,y)->y.compareTo(x)).forEach(x->System.out.println(x));
	      System.out.println("[원본]");
	      for(String m : lists) System.out.println(m);
    }////////m
}/////c

+ Recent posts