2010-12-23 5 views
3

가능한 중복 :자바 - 알파벳 순서 (목록)

persons.add(person); 
:

Sort List Alphabetically

는 어떻게 알파벳 순서로 내 입력을 저장합니까, 내가 ArrayList에에 이름을 입력하고

어떻게 수행하나요? 대신 ArrayList를

+0

그냥 컬렉션의 정렬 방법을 사용하여 사용 Comparator<T> 인터페이스를 구현합니다. –

+0

당신은 숙제를해야합니까? http://stackoverflow.com/questions/1946668/sorting-using-comparator-descending-order-user-defined-classes. 그것은 사회 활동이라고합니다 : –

답변

5

0

사용 TreeSet의이 시도 : 당신이 일단

java.util.Collections.sort(people); 
+1

아니요, 제가 배워야하기 때문에 ArrayList를 사용해야한다는 것입니다. – Jake

+3

정말 좋은 답변이 아닙니다. TreeSet는 세트는 아니고리스트입니다. 그가이 말을 맹목적으로 따라 간다면 그는 이유를 모른 채 문제 (특히 중복 요소가 없음)에 빠질 수 있습니다. –

+0

질문은 알파벳 순서로 요소를 저장하는 방법 이었지만 질문의 모음에는 제한이 없습니다. 그가 배열리스트를 사용한다는 사실은 아무런 의미가 없습니다. –

5
Collection<Person> listPeople = new ArrayList<Person>(); 

이 클래스 Person.java 클래스에 필적

public class Person implements Comparable<Person>{ 

public int compareTo(Person person) { 
    if(this.name != null && person.name != null){ 
    return this.name.compareToIgnoreCase(person.name); 
    } 
    return 0; 
} 

} 

를 구현합니다 당신 사람들 추가, 추가가 완료되면 다음을 입력하십시오.

Collections.sort(listPeople); 
+0

java.util.ArrayList()는 sort() 메소드를 제공하지 않습니다! 어떤 프로그래밍 언어에 대해 이야기하고 있습니까? –

+0

내 잘못, 그 Collections.sort (listPeople); – pringlesinn

+0

이상한. 커맨드 라인에서 컴파일하면이 오류가 발생합니다. Eclipse의'ArrayList'에는'.sort' 메소드가 있습니다. 어쩌면 버전 문제일까요? – BrainSlugs83

9

class A implements Comparator <Person> { 

    @Override 
    public int compare(Person o1, Person o2) { 
     if(o1.getName() != null && o2.getName() != null){ 
      return o1.getName().compareTo(o2.getName()); 
     } 

     return 0; 
    } 

} 

다음 당신은 사람의 목록을 통과 곳 Collections.sort(/* list here */, /* comparator here*/)