我有以下内容
String[] header1 = {"func", "name", "lrt"};
String[] value11 ={"f1", "n1", "0.1"};
String[] value12 ={"f2", "n2", "0.2"};
......
String[] header2 = {"name", "func", "lrt"};
String[] value21 ={"n3", "f3", "0.1"};
String[] value22 ={"n4", "f4", "0.2"};
......
class unit {
String func;
String name;
double lrt;
}
我有超过1000组不同的标题(及其附加值)以不同的顺序组织。
如何使用匹配不同标题的属性名称启动单元类。
提前致谢。
答案 0 :(得分:0)
我建议使用反射,因为它实际上非常简单:
unit u = new unit();
for(int i=0;i<;header1.lenght;i++) {
String h = header1[i];
String v = value11[i];
Field f = u.getClass().getDeclaredField(h);
f.set(u, v);
}
显然,您需要更多的基础设施来迭代您的数据元组... value11,value12等。
答案 1 :(得分:0)
HashMap
将是您实施的更好方法:
Map<String[], ArrayList<Object[]>> unit = new HashMap<String[], ArrayList<Object[]>>();
String[] header1 = {"func", "name", "lrt"};
Object[] value11 ={"f1", "n1", 0.1};
Object[] value12 ={"f2", "n2", 0.2};
String[] header2 = {"name", "func", "lrt"};
Object[] value21 ={"n3", "f3", 0.1};
Object[] value22 ={"n4", "f4", 0.2};
ArrayList<Object[]> values = new ArrayList<>();
values.add(value11);
values.add(value12);
unit.put(header1, values);
values.clear();
values.add(value21);
values.add(value22);
unit.put(header1, values);
尝试此操作,您将拥有一个unit
对象,其中包含您的所有值。