ArraySort

멍충이 이거 정리하는거 빼먹었네

정렬할 때 사용하는 메소드라고 함 아주 정렬할 때 유용유용

 

[배열이나 컬렉션(List계열만)에 저장된 객체(데이타) 정렬하기]

**** 배열타입 혹은 list계열 컬렉션에 저장된 객체의 타입은
 꼭 반드시 기필코 1.Comparable인터페이스를 상속받고 2.compareTo()메소드 오버라이딩 해야한 대... 안하면 오류 남

 

[형태]

배열 정렬:
          오름차순:
        Arrays.sort(배열) - 이때 배열은 기본자료형 타입의 배열이어도 상관없다
        Arrays.sort(T[ ],Comparator<? super T>) - 참조형 타입의 배열이어야 한다  
            내림차순:참조형 타입의 배열이어야 한다   기본자료형 안됨
        Arrays.sort(T[ ],Collections.reverseOrder())
        Arrays.sort(T[ ],Comparator<? super T>)
컬렉션 정렬:
          오름 차순:
        Collections.sort(List계열 컬렉션)    무조건 list계열!!!!
        Collections.sort(List계열 컬렉션,[Comparator<? super T>])
          내림 차순:
        Collections.sort(List계열 컬렉션,Collections.reverseOrder())
        Collections.sort(List계열 컬렉션,[Comparator<? super T>])

 


[arrays클래스로 배열 정렬하기]

String [ ] names= {"홍길동","가길동","도길동","나길동","마길동"};

      1.오름차순으로 정렬

        Arrays.sort(names);        => 원본배열이 재배치된다(in-place방식)
        Arrays.sort(names, new Comparator<String>( ) {
                   @Override
                   public int compare(String o1, String o2) {
                        문자 - compareTo,  숫자는 -
                        return o1.compareTo(o2);
                                                }
                                       });
          for(String name : names)  System.out.println(name);

 

++ 뒤에 좀 배우고 다시 수정(익명 클래스랑 제너릭 )

  위에꺼랑 틀 비교 하면서 보면 조큼 이해 됨
Arrays.sort(names,new Comparator<T>() {    // 요거 익명클래스 시작 !! 
                @Override  ///그러면 오버라이딩 해서 쓰겠지       

                 public int compare( T랑 같은 타입  ) {   }

});

 

 

      2.내림차순으로 정렬

        Arrays.sort(names,Collections.reverseOrder());
        Arrays.sort(names,new Comparator<String>() {
                   @Override
                   public int compare(String o1, String o2) {
                         문자 - compareTo  숫자는 -
                         return o2.compareTo(o1);
                                                     }
                                         });
for(String name : names) System.out.println(name);

 

[collections클래스로 컬렉션 정렬하기]  ==>반드시 list 계열 !!!!

List<Integer>numbers = Arrays.asList(100,25,156,87,53,87,42,2255);

     1.오름차순으로 정렬

          Collections.sort(numbers);
          Collections.sort(numbers,new Comparator<Integer>() {
                        @Override
                        public int compare(Integer o1, Integer o2) {
                         return o1-o2;
                                                        }
                                         });*/

               numbers.sort(Comparator.naturalOrder());      => 오름차순이 기본이라서 이거로 사용해도 가능!
               numbers.sort(new Comparator<Integer>() {
                          @Override
                          public int compare(Integer o1, Integer o2) {
                                         return o1-o2;
                                               }
                                        }
          );
                System.out.println(numbers);  

 

      2.내림차순으로 정렬

            Collections.sort(numbers,Collections.reverseOrder());
            Collections.sort(numbers,new Comparator<Integer>() {
                          @Override
                          public int compare(Integer o1, Integer o2) {
                                 return o2-o1;

                                                }
                           });
               numbers.sort(Comparator.reverseOrder());
               numbers.sort(new Comparator<Integer>() {
                         @Override
                          public int compare(Integer o1, Integer o2) {
                                   return  o2-o1;
                                                    }
                        });
            System.out.println(numbers);

 


이밖의 유용한 메소드
1.배열의 요소들을 하나의 문자열로 변환하는 메소드: Arrys.toString(배열)
      System.out.println(Arrays.toString(names));
2.배열을 list컬렉션으로 변환하는 메소드: Arrys.asList(T...a)
       List<String> list = Arrays.asList(names);
       List<String> list = Arrays.asList("홍길동","가길동","도길동","나길동","마길동");  =>(T...a)니까 더 추가 가능
           for(String s :list) System.out.println(s);
3.list컬렉션을 배열로 변환하는 메소드:리스트컬렉션객체.toArray()
      Object[ ] objectArray = list.toArray();
      System.out.println(Arrays.toString(objectArray));

 

..... 이거 주말에 다시 공부 하자... 급하게 정리만 함

'학원 > JAVA' 카테고리의 다른 글

10/7 17-2 exception(예외 처리)  (1) 2022.10.08
10/7 17-1 AddressBook(컬렉션 종합)  (0) 2022.10.08
10/6 16-7 collection(MAP-TreeMap)  (0) 2022.10.06
10/6 16-6 collection(Map-HashMap)  (0) 2022.10.06
10/6 16-5 collection(List - Vector)  (0) 2022.10.06

+ Recent posts