如何使用Java中的TreeSet作为TreeMap的值?

时间:2017-08-01 10:49:56

标签: java collections nullpointerexception treemap treeset

我有一个Java应用程序,它将一些rdf数据集作为输入并处理这些数据。 我使用TreeMap,其中键是实例名称,值为TreeSet,包括实例具有的属性列表和允许我们使用的int。

static TreeMap<String, TreeSet<PropertyIsTyped>> instanceListPropertiesTreeMap = new TreeMap<String, TreeSet<PropertyIsTyped>>();

String instancemapKey = s[0];
TreeSet<PropertyIsTyped> setOfPropertiesPerInstance = new TreeSet<PropertyIsTyped>();
if (instanceListPropertiesTreeMap.get(instancemapKey) == null) {
    setOfPropertiesPerInstance.add(new PropertyIsTyped(s[1], 1));
    instanceListPropertiesTreeMap.put(instancemapKey, setOfPropertiesPerInstance);
} else if (instanceListPropertiesTreeMap.get(instancemapKey) != null
        && !setOfPropertiesPerInstance.contains(s[1])) {
    setOfPropertiesPerInstance = instanceListPropertiesTreeMap.get(instancemapKey);
    PropertyIsTyped currentListproperties = new PropertyIsTyped(s[1], 1);
    setOfPropertiesPerInstance.add(currentListproperties);
}

另一方面,我的PropertyIsTyped类就像:

public class PropertyIsTyped {

    public int isTyped;

    public List<String> PropertySet;

    public PropertyIsTyped(String properties, int typevalue) {
        // this.propertyId = id;
        if (properties != "")
            PropertySet.add(properties);
        if (typevalue == 1) {
            this.isTyped = 1;
        } else {
            this.isTyped = 0;
        }
    }

}

问题:当我想要在我的List PropertySet中插入新的propeties时,我提供我的数据集时,它会给我NullpointerExceptionError

任何想法?

1 个答案:

答案 0 :(得分:-2)

public List propertySet = null;

if(properties!=&#34;&#34;)  propertySet.add(properties);`不要纠正!列表必须初始化!

您需要初始化列表:

public List PropertySet = new ArrayList&lt;&gt;();

...