Odrer ID Descrption Type
Envelope K205 Green Paper >>>>String Line with space in between
Box J556 Yellow Thermocol >>>>String Line with space in between
Envelope L142 White Plastic >>>>String Line with space in between
我有一张上面的表格,我必须提供选项排序 基于列名的数据,如“按订单排序”,“按类型排序”之类的内容 PLZ建议我在Java中实现这一点的最佳想法...表行是字符串 隔开每个人的空间..
答案 0 :(得分:0)
您必须开发自定义Comparator。例如以下内容。
class ColumnComparator implements Comparator<String> {
private int column;
ColumnComparator(int column) {
this.column = column;
}
public int compare(String s1, String s2) {
return getColumn(s1).compareTo(getColumn(s2));
}
private String getColumn(String line) {
return line.split("\\s+")[column];
}
然后你可以使用Arrays.sort()
或Collections.sort()
传递你的数组或行的集合以及这个比较器的实例。我留下它来实现逻辑,按列名查找列索引。
}
答案 1 :(得分:0)
将表中的每一行表示为具有order,id,description和type属性的对象。将每个对象添加到集合(例如列表)中。然后,您可以创建不同的比较器,例如OrderComparator
和TypeComparator
,以分别根据订单或类型对集合进行排序。
例如,以下是您的数据类的外观:
public class Data{
private final String order;
private final String id;
private final String description;
private final String type;
public Data(String order, String id, String description, String type) {
this.order=order;
this.id=id;
this.description=description;
this.type=type;
}
/** getter methods here **/
}
现在,您可以将它们添加到列表中并使用特定的比较器对其进行排序:
//add data to a list
List<Data> list = new ArrayList<Data>();
list.add(new Data("Envelope","K205","Green","Paper"));
list.add(new Data("Box","J556","Yellow","Thermocol"));
list.add(new Data("Envelope","L142","White","Plastic"));
//create a comparator to sort by type
Comparator<Data> typeComparator = new Comparator<Data>() {
@Override
public int compare(Data o1, Data o2) {
return o1.getType().compareTo(o2.getType());
}
};
//sort the list
Collections.sort(list, typeComparator);
答案 2 :(得分:0)
可能方法的概述(假设数据不是来自数据库):
将您的数据表示为具有相应字段的类:
class YourData {
private final String Order;
private final String Id;
private final String Description;
private final String Type;
// add getters, setters and appropriate constructors
}
使用适当的数据类型。您可以使用Scanner
来解析数据。
为您要订购的每个属性写一个Comparator
。如果您想要撤消订购,可以使用Collections.reverseOrder
。
将您的数据放入ArrayList
,并使用Collections.sort
和相应的Comparator
来实现所需的排序。