سؤال

لدي مجموعة صفيف. لدي إصلاحات إدخال تم إعدادها أيضا، بحيث يمكن للمستخدم إدخال سلسلة واحدة، ثم عدد صحيح واحد، ثم سلسلة واحدة (الاسم الأول، العمر، والاسم الأخير).

أحتاج إلى فرز القطع من قبل الاسم الأخير. الرمز الذي أدخلته حتى الآن هو كل ما تحت الطريقة الرئيسية: -

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
هل كانت مفيدة؟

المحلول

إلقاء نظرة على قابلة للمقارنة, المقارنة, Arrays.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());
        }
    }
}

نصائح أخرى

هذا لا يعني أن يكون مسيئا ولكن أود أن أقترح عليك تعلم الأساسيات قبل الانتقال إلى التأرجح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top