Java 数组列表按字母顺序排序
我得到的任务是制作一个包含3个类的电话簿,运行所有类的驱动程序,电话簿和一个人类 我遇到的问题是我无法进行Collection.sort(telbook.personen) 我想知道的是,我必须添加或替换什么才能使它在arraylist中排序 因为我现在把它作为一个函数,我可以自己运行来检查它是否排序,但这不起作用 驾驶员等级:Java 数组列表按字母顺序排序,java,sorting,arraylist,Java,Sorting,Arraylist,我得到的任务是制作一个包含3个类的电话簿,运行所有类的驱动程序,电话簿和一个人类 我遇到的问题是我无法进行Collection.sort(telbook.personen) 我想知道的是,我必须添加或替换什么才能使它在arraylist中排序 因为我现在把它作为一个函数,我可以自己运行来检查它是否排序,但这不起作用 驾驶员等级: /** * Created by ricardo on 2/26/2015. */ import java.util.*; public cla
/**
* Created by ricardo on 2/26/2015.
*/
import java.util.*;
public class Driver {
Phonebook telbook = new Phonebook();
Scanner scan = new Scanner(System.in);
String newLine = System.getProperty("line.separator");
String[] Commands = {"/addperson - add a person to my beautiful program",
"/listpersons - for full list of persons",
"/removeperson - to remove a made person",
"/sortlist - sorts the phonebook (alphabetically)"};
private boolean running;
private boolean startmessage = false;
public static void main(String[] args) {
Driver n = new Driver();
n.run();
}
public void run() {
running = true;
startProgram();
}
public void startProgram() {
while (running) {
if (!startmessage) {
System.out.println("Type /commands for all available commands.");
startmessage = true;
}
String entered = scan.nextLine();
if (entered.equals("/commands")) {
for (int i = 0; i < Commands.length; i++)
System.out.println(Commands[i]);
} else if (entered.equals("/addperson")) {
addPerson();
} else if (entered.equals("/listpersons")) {
listPersons();
} else if (entered.equals("/removeperson")) {
removePerson();
} else if (entered.equals("/sortlist")) {
sortList();
} else {
System.out.println("Command not available. Type /commands for full list of commands");
}
}
}
public void addPerson() {
System.out.println("Fill in your name");
String addname = scan.nextLine();
System.out.println("Fill in your adress");
String addadress = scan.nextLine();
System.out.println("Fill in your city");
String addcity = scan.nextLine();
System.out.println("Fill in your phonenumber");
String addphonenumber = scan.nextLine();
System.out.println("Your data has been saved!");
Person addperson = new Person(addname, addadress, addphonenumber, addcity);
telbook.personen.add(addperson);
//sortList();
}
public void removePerson() {
listPersons();
System.out.println("Insert the ID of the person to be removed");
int ID = Integer.parseInt(scan.nextLine());
if (ID > telbook.personen.size()) {
System.out.println("There is no person with this ID, please select a different ID");
removePerson();
} else {
telbook.personen.remove(ID);
System.out.println("Person with the ID of " + ID + " has been removed");
}
}
public void listPersons() {
int ID = 0;
if (telbook.personen.isEmpty()) {
System.out.println("There is no person added yet. type /addperson to do so");
}
for (int i = 0; i < telbook.personen.size(); i++) {
System.out.println("ID:" + ID + newLine + " name: " + telbook.personen.get(i).name + newLine + " adress: " + telbook.personen.get(i).adress + newLine + " city: " + telbook.personen.get(i).city + newLine + " phonenumber: " + telbook.personen.get(i).phonenumber);
ID++;
}
}
public void sortList() {
Collections.sort(telbook.personen);
}
您应该让您的
Person
类实现该接口,并具体说明如何比较两个Person
对象
另一种方法是实施作业,并使用作业(即家庭作业)暗示独立工作。请不要随便问这样一些具体而无用的问题,这就是为什么学校几乎毫无用处。什么样的现实场景会将您限制为3类?学校似乎把创造力埋在了焦土深处。无论如何:+ricardo spek一旦得到答案,你就应该删除这个问题。我不是反对者,但我担心这是因为你用聪明的答案鼓励这些愚蠢的问题。@Andremoniy(1)没有“愚蠢的问题”,不熟悉
比较器的java专家没有什么错(这个问题确实需要一些调整)。(2)我认为不给一个人代码就告诉他应该做什么没有坏处。这鼓励了学习。但我认为(作为一名有7年教学经验的教师)这样的辅导每个学生都必须独立完成。此外,这样的问题对SO的其他读者来说毫无用处,因为它非常具体。这就是我问它的原因,它是具体的,因此没有其他已经问过的问题有帮助
/**
* Created by ricardo on 2/26/2015.
*/
import java.util.*;
public class Phonebook {
ArrayList<Person> personen = new ArrayList<Person>();
}
/**
* Created by ricardo on 2/26/2015.
*/
public class Person {
String name, adress, phonenumber, city;
public Person(String name, String adress, String phonenumber, String city) {
this.name = name;
this.adress = adress;
this.city = city;
this.phonenumber = phonenumber;
}
// public String getCity() { return city; }
//
// public void setCity(String city) {
// this.city = city;
// }
//
// public String getName() {
// return name;
// }
//
// public void setName(String name) {
// this.name = name;
// }
//
// public String getAdress() {
// return adress;
// }
//
// public void setAdress(String adress) {
// this.adress = adress;
// }
//
// public String getPhonenumber() {
// return phonenumber;
// }
//
// public void setPhonenumber(String phonenumber) {
// this.phonenumber = phonenumber;
// }
}