来自One ArrayList的Java两个ArrayLists

时间:2015-07-09 10:43:20

标签: java arraylist elements

我有一个List,我在其中存储了2个ArrayLists。

var graphJSON = {"nodes":["1","2","3","4","5","6"],"edges":[["4","3"],["3","4"],["3","3"],["4","4"]]};



  var graph = new Springy.Graph();
  graph.loadJSON(graphJSON);
  var springy = jQuery('#springydemo').springy({graph: graph});


jQuery('#springydemo').springy({ graph: graph, nodeSelected: function(node) {
    alert(node.data.label);
} });

在另一种方法中,我想访问这两个列表。我正在尝试这段代码:

metadataList.addAll(countryList);
metadataList.addAll(languageList);

它不允许我做上面的行显示错误:无法从String转换为List。请告诉我如何访问这两个列表并进一步处理:

List<String> countriesList = metadataValues.get(0);
List<String> languageList = metadataValues.get(1);

这是parseXml方法:

List<String> metadataValues = parseXml(metadata.xml);


System.out.println("metadataValues in first method ---->" + metadataValues.size());
List<String> countriesList = metadataValues.get(0);
List<String> languageList = metadataValues.get(1);
StringBuilder sb = new StringBuilder();
StringBuilder sb1 = new StringBuilder();

if (countriesList.size() == 1 || languageList.size() == 1) {
    for (String cnt: countriesList) {
        video.setCountry(cnt);
    }
    for (String language: languageList) {
        video.setLanguage(language);
    }
}
if (countriesList.size() >= 2 || languageList.size() >= 2) {
    for (String s: countriesList) {
        sb.append(s);
        sb.append(",");
    }
    for (String s1: languageList) {
        sb1.append(s1);
        sb1.append(",");
    }
}
if (sb.length() != 0) {
    sb.deleteCharAt(sb.length() - 1);
    System.out.println("StringBuilder Value ------>" + sb.toString());
    video.setCountry(sb.toString());
}
if (sb1.length() != 0) {
    sb1.deleteCharAt(sb1.length() - 1);
    System.out.println("StringBuilder Value ------>" + sb1.toString());
    video.setLanguage(sb1.toString());
}

2 个答案:

答案 0 :(得分:2)

list != list of list

使用parseXml()方法更改您的列表声明。

List<String> metadataList = new ArrayList<String>();

List<List<String>> metadataList = new ArrayList<List<String>>();

并将元素添加为

metadataList.add(countryList);
metadataList.add(languageList);

然后,您可以稍后将这些列表检索为单个元素。

答案 1 :(得分:1)

好吧,你有两个List<String>并将所有条目(单个条目是一个字符串)添加到元数据库。如果使用列表的get()方法,则将在特定索引处检索字符串。

将两个列表存储在一个数组中以重新访问两个列表或使用List<List<String>> metadatalist。因此,您使用add()方法将两个列表添加到元数据中,并可以再次访问每个列表。