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 |