2010-03-13 6 views
0

나는 arraylist를 설정했습니다. 나는 사용자가 하나의 문자열을 입력 한 다음 하나의 정수를 입력하고 하나의 문자열 (이름, 나이 및 성)을 입력 할 수 있도록 입력기를 설정했습니다.자바 언어로 arraylist 정렬

arraylist를 성으로 정렬해야합니다. 지금까지 입력 한 코드는 모든 주요 방법 중입니다 : -

public static void main(String[] args) { 
Name Name[] = new Name[50]; 
int count = 0; 

for (int i=0; i<50; i++) 
    NewName[i] = new Name(); 

//ADD NEW TO ARRAYLIST NAME 
String FName = JOptionPane.showInputDialog("first name"); 
int age = Integer.parseInt(JOptionPane.showInputDialog("age")); 
String LName = JOptionPane.showInputDialog("last name"); 
      NewName[count] = new Name(FName, age, LName); 
count = count++; 
} 

//ITEMS SORT BY LAST NAME 
//CODE FOR SORT GOES HERE 
+1

java의 소문자에서 변수 이름을 지정하는 규칙이 있습니다. – Artic

+0

실제로는 'ArrayList'를 사용하지 않고 Name 객체의 배열을 사용하고 있습니다. –

+0

Sorting은'Name' 객체의 구현에 달려 있습니다. 나는'Arrays.sort','Collections.sort','Comparator'에 대해서만 암시 할 수 있습니다. 사이드 노트와 마찬가지로 – Pindatjuh

답변

5

공세로 이것은 의미하지 않는다 Comparable, Comparator, Arrays.sortCollections.sort

import java.util.Arrays; 


class Name implements Comparable<Name> { 

    private String lastName; 
    //Other fields 

    public Name(String lastName){ 
     this.lastName = lastName; 
    } 

    public int compareTo(Name o) { 
     //Null checks etc 
     return lastName.compareTo(o.lastName); 
    } 
    public String getLastName(){ 
     return lastName; 
    } 
    //Getter and setter methods 
} 

public class Test{ 
    public static void main(String[] args) { 
     Name[] arr = new Name[]{new Name("AAC"), new Name("AAD"), new Name("AAA"),new Name("ABC"), new Name("AADDE")}; 
     Arrays.sort(arr); 
     for(Name nm:arr){ 
      System.out.println(nm.getLastName()); 
     } 
    } 
} 
+0

+1 Arrays.sort에 대한 –

+0

나는 이것을 시도하고 여전히 작동하지 않습니다 ... – Computeristic

+0

이것은 자바에 대한 아주 기본적인 개념이지만 추가 된 코드입니다. – saugata

4

를 살펴 보자하지만 Swing으로 옮기기 전에 기초를 배울 것을 제안합니다.

+0

기본 사항을 알고 있습니다. 문제가되는 배열 일뿐입니다. – Computeristic

+3

헬퍼가 배열의 기본을 제안한다고 생각합니다. 나는 동의하는 경향이있다. – Carl