Java 从文本文件中按名称列出客户
我正在做一个项目,在这个项目中,我的客户对文本文件有保留。我希望能够“列出客户”他们,然后让他们按照客户名称的字母顺序出现。我现在只有:Java 从文本文件中按名称列出客户,java,Java,我正在做一个项目,在这个项目中,我的客户对文本文件有保留。我希望能够“列出客户”他们,然后让他们按照客户名称的字母顺序出现。我现在只有: public static void listCustomers(List<Customer> customers) { System.out.format("\033[31m%s\033[0m%n", "Customers"); System.out.format("\033[31m%s\033[0m%n", "=======
public static void listCustomers(List<Customer> customers) {
System.out.format("\033[31m%s\033[0m%n", "Customers");
System.out.format("\033[31m%s\033[0m%n", "=========");
for (Customer c : customers) {
System.out.format("\033[33m%s\033[0m%n", "Customer");
System.out.format("\033[33m%s\033[0m%n", "--------");
System.out.println(c);
}
}
公共静态无效列表客户(列表客户){
系统输出格式(“\033[3100万%s\033[00万%n”,“客户”);
系统输出格式(“\033[31m%s\033[0m%n”,”================”;
用于(客户c:客户){
系统输出格式(“\033[3300万%s\033[0万%n”,“客户”);
系统输出格式(“\033[330m%s\033[0m%n],”----------”);
系统输出打印ln(c);
}
}
这是因为它确实列出了客户,但它没有按字母顺序列出他们,因为我也喜欢他们。我对编码有点陌生,所以如果这是一种愚蠢的方式,请让我知道。谢谢:)
//然后使用与现在相同的逻辑进行打印您可以使用
集合。排序(Comparator您可以使用Comparator进行排序,如下所示
Main.java
public class Main {
public static void main(String[] args) {
List<Customer> customers = new ArrayList<Customer>();
customers.add(new Customer("001", "Namal"));
customers.add(new Customer("002", "Lakmini"));
customers.add(new Customer("003", "Ahas"));
System.out.println("main().customers 1 : " + customers);
Collections.sort(customers,new NameSorter());
System.out.println("main().customers 2 : " + customers);
}
public class Customer {
public Customer(String id, String name) {
this.id = id;
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String toString() {
return this.id + "|" + this.name;
}
private String name = null;
private String id = null;
}
public class NameSorter implements Comparator<Customer>{
@Override
public int compare(Customer o1, Customer o2) {
return o1.getName().compareTo(o2.getName());
}
}
NameSorter.java
public class Main {
public static void main(String[] args) {
List<Customer> customers = new ArrayList<Customer>();
customers.add(new Customer("001", "Namal"));
customers.add(new Customer("002", "Lakmini"));
customers.add(new Customer("003", "Ahas"));
System.out.println("main().customers 1 : " + customers);
Collections.sort(customers,new NameSorter());
System.out.println("main().customers 2 : " + customers);
}
public class Customer {
public Customer(String id, String name) {
this.id = id;
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String toString() {
return this.id + "|" + this.name;
}
private String name = null;
private String id = null;
}
public class NameSorter implements Comparator<Customer>{
@Override
public int compare(Customer o1, Customer o2) {
return o1.getName().compareTo(o2.getName());
}
}
公共类名称排序器实现Comparator{
@凌驾
公共整数比较(客户o1、客户o2){
返回o1.getName().compareTo(o2.getName());
}
}
我无法发表评论,因此请检查:它说“需要包含CustomerComparator的封闭实例”如果这是明显的,很抱歉类CustomerComparator
必须在其自己的文件中。
public class NameSorter implements Comparator<Customer>{
@Override
public int compare(Customer o1, Customer o2) {
return o1.getName().compareTo(o2.getName());
}
}