从List元素的Map字段中获取值

时间:2017-07-21 20:14:45

标签: java list dictionary arraylist hashmap

我想从otherclass2中绘制一个String值。我怎么能这样做?

public class Main {
    public static void main(String[] args) {
        List<otherclass> list = new ArrayList<otherclass>();

        list.add(new otherclass());
    }
}


public class otherclass {
    private Map<String, otherclass2> maps = new HashMap<String, otherclass2>();
}

public class otherclass2 {
    String value = "I want this String";
}

我应该使用list.get()吗?还是有另一种方法吗?

1 个答案:

答案 0 :(得分:0)

您无法获得otherclass2的值,因为您的列表包含otherclass的实例,而otherclass包含private maps =&gt;因此,list.get(0)您无法访问maps =&gt;无法访问maps也意味着您无法访问otherclass2值。

第二个问题是你没有初始化otherclass2并将其放入maps

要解决您的问题(您应该创建get / setter而不是像这里使用public):

public class Main {
    public static void main(String[] args){
        List<otherclass> list = new ArrayList<otherclass>();
        list.add(new otherclass());
        otherclass other = list.get(0);
        String your_value = other.maps.get("first").value;
        System.out.println(your_value);
    }
}

public class otherclass{
    public Map<String, otherclass2> maps = new HashMap<String, otherclass2>();
    public otherclass(){
        maps.put("first", new otherclass2());
    }
}

public class otherclass2{
    public String value = "I want this String"
}