자바 Collections.sort()List 정렬 을 위 한 기본 방법 과 사용자 정의 방법
4422 단어 자바cllectionssort정렬
주 코드:
List<String> list = new ArrayList();list.add(" ");
list.add(" ");
list.add(" ");
list.add(" ");
list.add(" ");
//
Collections.sort(list,Collator.getInstance(java.util.Locale.CHINA));// : ,
for(int i=0;i<list.size();i++)
{
System.out.print(list.get(i));
}
System.out.println("");
//
Collections.reverse(list);// ,
for(int i=0;i<list.size();i++)
{
System.out.print(list.get(i));
}
출력 결과:이명 유 포 유 디 유 웬 왕 석
왕 석 유 원 원 유 디 유 부 이명
2.사용자 정의 정렬 규칙:
첫 번 째 는 model 류 가 Comparable 인 터 페 이 스 를 실현 하고 int compare To(Object o)를 다시 쓰 는 방법 입 니 다.
model 클래스:
public class StudentDTO implements Comparable
{
private String name;
private int age;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public ObjType getType()
{
return type;
}
public void setAge(int age)
{
this.age= age;
}
@Override
public int compareTo(Object o)
{
StudentDTO sdto = (StudentDTO)o;
int otherAge = sdto.getAge();
// note: enum-type's comparation depend on types' list order of enum method
// so, if compared property is enum-type ,then its comparationfollow ObjEnum.objType order
return this.age.compareTo(otherAge);
}
}
:
public static void main(String[] args)
{
List<StudentDTO> studentList = new ArrayList();
StudentDTO s1 = new StudentDTO ();
s.setName("yuanyuan");
s.setAge(22);
studentList.add(s1);
StudentDTO s1 = new StudentDTO ();
s.setName("lily");
s.setAge(23);
studentList.add(s2);
Collections.sort(studentList); // age 22,23,
Collections.reverse(studentList); // age 23,22
}
두 번 째 는 비교 기 류 가 Comparator 인 터 페 이 스 를 실현 하고 int compare(Object o 1,Object o 2)방법 을 다시 쓰 는 것 이다.model 클래스:
public class StudentDTO implements Comparable
{
private String name;
private int age;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public ObjType getType()
{
return type;
}
public void setAge(int age)
{
this.age= age;
}
}
:
class MyCompartor implements Comparator
{
@Override
public int compare(Object o1, Object o2)
{
StudentDTO sdto1= (StudentDTO )o1;
StudentDTO sdto2= (StudentDTO )o2;
return sdto1.getAge.compareTo(stdo2.getAge())
}
}
:
public static void main(String[] args)
{
List<StudentDTO> studentList = new ArrayList();
StudentDTO s1 = new StudentDTO ();
s.setName("yuanyuan");
s.setAge(22);
studentList.add(s1);
StudentDTO s1 = new StudentDTO ();
s.setName("lily");
s.setAge(23);
studentList.add(s2);
MyComparetor mc = new MyComparetor();
Collections.sort(studentList,mc); // age 22,23,
Collections.reverse(studentList,mc); // age 23,22
}
주석:1.배열 의 정렬 방법 은 다음 과 같다.
String[] names = {" ", " ", " ", " ", " "};
Arrays.sort(names, com.ibm.icu.text.Collator.getInstance(com.ibm.icu.util.ULocale.SIMPLIFIED_CHINESE));// ;
System.out.println(Arrays.toString(names));
2.한자 의 정렬:ICU4J 를 사용 하면 더 좋 은 결 과 를 얻 을 수 있 습 니 다.특히 성 이 생소 한 글자 일 때,자바.text.collator 를 com.ibm.icu.text.collator 로 교체 하고,com.ibm.icu.util.ULocale 로 자바.util.Locale 을 대체 합 니 다.
3.매 거 진 유형의 enum 1.compare To(enum 2)는 매 거 진 유형 값 이 정 의 될 때의 선후 순서에 따라 비교 한 것 으로 뒤에 있 을 수록 크다.
값 의 자모 선착순 으로 비교 한 것 이 아니다.
위 에서 말 한 것 은 소 편 이 소개 한 자바 Collections.sort()가 List 정렬 을 실현 하 는 기본 적 인 방법 과 사용자 정의 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.