我正在将一个分隔文件读入一个名为“Holder”的自定义对象中。Holder 包含一个名为“Record”的自定义对象列表。每个记录都是称为“字段”的自定义对象的列表。每个字段都有一个字符串名称和字符串值
public class Holder{
private List RecordList;
/* constructors and methods */
}
public class Record{
private List FieldList
/* constructors and methods */
}
public class Field{
private String Name;
private String Value;
/* constructors and methods */
}
我正在根据该行的第一项从数据库中提取 Field 对象的名称。这是我正在提取的文件的示例(行号 - 它们也将是记录索引 - 为了便于解释,从 0 开始添加):
0 - A,123
1 - B,123,123456
2 - B,123,654321
3 - B,123,112233
4 - C,123,choice1,1/1/2011,12/31/2011
5 - C,123,choice2,1/1/2011,12/31/2011
6 - D,123,choice1,1/1/2011,12/31/2011,654321
7 - D,123,choice1,1/1/2011,12/31/2011,112233
Holder 存储一个Record
对象列表。每一行都成为一个Record
存储对象列表的Field
对象。逗号之间的每个字符串在对象Value
上都成为自己的字符串。Field
例如:对于第一个“B”记录(第 1 行),ARecord BLine1
对象将如下所示:
BLine1.getFieldList.get(0).getName() = "LineType" //set from DAO not shown
BLine1.getFieldList.get(0).getValue() = "B"
BLine1.getFieldList.get(1).getName() = "Number" //set from DAO not shown
BLine1.getFieldList.get(1).getValue() = "123"
BLine1.getFieldList.get(2).getName() = "Selection" //set from DAO not shown
BLine1.getFieldList.get(2).getValue() = "123456"
我需要按每个字段对这个列表进行排序。但根据 LineType 的不同,要排序的项目的类型和数量会发生变化。可以添加/删除 LineTypes,并且可以更改字段。所以我真的需要尽可能通用的东西。
它将按照字段在行中的顺序进行排序。所以它会被排序FieldList.getValue(0), FieldList.getValue(1), .... FieldList.getValue(FieldList.size() - 1)
因此,这是完成后行号的顺序:
0
3
1
2
4
5
7
6
进行这种排序的最佳/最有效方法是什么?
提前致谢!