基于java中的不同数据成员对对象列表进行排序
发布时间:2020-12-15 04:57:36 所属栏目:Java 来源:网络整理
导读:我有这门课: public class Friend {private String name;private String location;private String temp;private String humidity;public String getTemp() { return temp;}public void setTemp(String temp) { this.temp = temp;}public String getHumidity
我有这门课:
public class Friend { private String name; private String location; private String temp; private String humidity; public String getTemp() { return temp; } public void setTemp(String temp) { this.temp = temp; } public String getHumidity() { return humidity; } public void setHumidity(String humidity) { this.humidity = humidity; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getLocation() { return location; } public void setLocation(String location) { this.location = location; } } 我想根据用户输入根据名称,位置,温度和湿度对List进行排序. 解决方法
Java有一个名为
Collections.sort(List,Comparator) 的静态函数,它在给定自定义比较器的情况下对一个(通用的)对象列表进行排序,给定两个相同类型的对象,确定哪一个在另一个之前排序.
您的任务是编写一个函数,该函数创建一个Comparator,它根据参数和用户指定的排序顺序对对象进行排序.例如: public Comparator<Friend> getComparator(final String sortBy) { if ("name".equals(sortBy)) { return new Comparator<Friend>() { @Override int compare(Friend f1,Friend f2) return f1.getName().compareTo(f2.getName()); } }; } else if ("location".equals(sortBy)) { return new Comparator<Friend>() { @Override int compare(Friend f1,Friend f2) return f1.getLocation().compareTo(f2.getLocation()); } }; } else if ("temp".equals(sortBy)) { // ... } else { throw new IllegalArgumentException("invalid sort field '" + sortBy + "'"); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |