将通用列表转换为java对象

时间:2017-10-24 19:28:57

标签: java arrays list object

我正在对数据库执行查询,并得到一个通用的对象列表。整个对象的结构如下:

List<E> objDetails =
    [0] --> ["name1", "value1"]
    [1] --> ["name2", "value2"]
    ....
    [n] --> ["nameN", "valueN"]

简而言之,我得到了一个对象数组,在每个元素中,都有我想要访问的名称和值对。获得这些价值的最简单方法是什么?我正在考虑将整个列表转换为一个可能包含名称/值的自行设计的类。问题是,一个是字符串,另一个是整数。

我有什么选择?

编辑:

这是我尝试定义的两个类,以解决这个问题

private static class Clinic {

    public List<ClinicDetails> details;
}

private static class ClinicDetails {

    private Integer objectID;
    private String healthName;

}

List<Clinic> clinic = DataServices.getResult(q);

编辑2:

以下是我解决这个问题的方法

        List<Object[]> clinic = DataServices.getResult(q);

        for(Object[] obj: clinic) {

            for(int i = 0; i < obj.length; i++) {
                System.out.println(obj[i]);
                // will store in my own list now that I can access it
            }
        }

2 个答案:

答案 0 :(得分:1)

简单的地图如下所示:

Map m=new HashMap<String, String>();
m.put("Key", "Value");
m.put("Key2", "Value2");
assertEquals(m.get("Key"), "Value");
assertEquals(m.get("Key2"), "Value2");

这些解决了很多用例,但对于长期可重用对象并不是很好。每个人都使用&#34;哈希&#34;但如果你很好,你就会将他们的用法分为单一方法或单一类别。

答案 1 :(得分:0)

这将实现一个可以重复使用的通用对象。

干杯!

`    public interface node<K,N> {
    public K getKey();
    public N getValue();
}
public class LogicalNode<K,N> implements node<K,N>{
    private K key;
    private N value;
    public LogicalNode(K key, N value) {
        this.key = key;
        this.value = value;
    }
    public K getKey() {return key;}
    public N getValue() {return value;}
}
public class arr2lst {
    public static void main(String[] args) {
        ArrayList<node<String, Integer>> rs = new ArrayList<node<String,Integer>>();
        rs.add(new LogicalNode<String, Integer>("name", nbr));
        rs.add(new LogicalNode<String, Integer>("name2", nbr2));
    }
}`