정렬하는방법 정리 with 람다

꿀이·2022년 6월 12일
0

람다로 하니까 편하네...
문자열의 경우 compareToIgnoreCase() 를 하면 대소문자 구분 하지 않고 정렬

//정수 배열 정렬
        Integer[] i_arr = new Integer[]{1, 4, 2, 5, 3};
        Arrays.sort(i_arr, (x,y)->{return y-x;});
        Arrays.stream(i_arr).
                forEach(x-> System.out.println("x = " + x));
        
        System.out.println("=====================================");
        
        //문자 배열 정렬
        Character[] c_arr = new Character[]{'c','a','d','b','e',};
        Arrays.sort(c_arr, (x,y)->{return x-y;});
        Arrays.stream(c_arr).
                forEach(x-> System.out.println("x = " + x));
        
        System.out.println("=====================================");
        
        //문자열 배열 정렬
        String[] s_arr = new String[]{"aaa","aac","aab","aba","ccc"};
        Arrays.sort(s_arr,(x,y)->{return x.compareToIgnoreCase(y);});
        Arrays.stream(s_arr)
                .forEach(x-> System.out.println("x = " + x));

        System.out.println("=====================================");
        
        //정수 리스트 정렬
        List<Integer> i_list = Arrays.asList(5,2,3,1,4);
        i_list.sort((x,y) -> x-y);
        i_list.stream()
                .forEach(x-> System.out.println("x = " + x));

        System.out.println("=====================================");

        //문자열 리스트 정렬
        List<String> s_list = Arrays.asList("aaa", "bbb", "aab", "ccc", "caa", "cca");
        s_list.sort((x,y)-> x.compareToIgnoreCase(y));
        s_list.stream()
                .forEach(x-> System.out.println("x = " + x));

오.. 우선순위 큐도 이렇게 하면 되는구나

        //정수 우선순위큐 정렬
        PriorityQueue<Integer> pq = new PriorityQueue<>((x, y) -> y - x);
        pq.add(5);
        pq.add(3);
        pq.add(4);
        pq.add(2);
        pq.add(1);

        pq.stream()
                .forEach(x-> System.out.println("x = " + x));
        System.out.println("==================================");

        //문자열 우선순위 큐
        
        PriorityQueue<String> s_pq = new PriorityQueue<>((x,y)->x.compareToIgnoreCase(y));
        s_pq.add("bbb");
        s_pq.add("baa");
        s_pq.add("aaa");
        s_pq.add("aca");
        
        s_pq.stream()
                .forEach(x-> System.out.println("x = " + x));
profile
내게 맞는 옷을 찾는중🔎

0개의 댓글