0

我有一个看起来像这样的 ArrayList:

ArrayList<String> item;

项目 [0] --> 繁荣

项目 [1] --> pow

项目 [2] --> 砰

项目 [3] --> zing

现在我要做的是获取每个项目并使用该项目的名称创建一个空的 ArrayList 字符串。例如,结果将是

ArrayList<String> boom; 

ArrayList<String> pow; 

ArrayList<String> bang;

ArrayList<String> zing;

抱歉,如果这是一个简单的答案,但我仍在学习。

4

2 回答 2

2

如果我理解你的问题,那么你可以使用 a Map<String, ArrayList<String>> map,检查标题是否已经存在(如果它不是 create a new ArrayList<>)。就像是,

Map<String, List<String>> headings = new HashMap<>();
// perform processing in a loop, for each heading...
String heading = "Example";
String content = "Body";
// ...
if (!headings.containsKey(heading)) {
    headings.put(heading, new ArrayList<>());
}
List<String> bodies = headings.get(heading);
bodies.add(content);
// .. iterate heading

或者您可能会headings像这样预先填充地图

List<String> nameList = Arrays.asList("boom", "pow", "bang");
Map<String, List<String>> headings = new HashMap<>();
for (String name : nameList) {
    headings.put(name, new ArrayList<>());
}
// ... 
于 2015-05-25T19:43:59.710 回答
1

在编程语言中,变量名用于指代存储value在计算机内存中的变量。所以一个变量名可以被认为是一个key访问value存储在计算机内存中的变量名。标准数据结构Map具有类似的key值结构。所以我们可以Map在这里使用 - “boom”作为一个键和new ArrayList<String>()一个value.

假设您在nameList-

ArrayList nameList = new ArrayList(){{
    add("boom");
    add("pow");
    add("bang");
}};  

现在您要创建 3ArrayListStirng给出的名称nameList。所以你把它们放在Map<String, List<String>这样的地方 -

Map<String, List<String> > vars  = new HashMap<String, List<String>>();

for(int i=0; i<nameList.size(); i++){

   String key = nameList.get(i);
   List<String> value = new ArrayList<String>();
   vars.put(key, value);
}   

完整的鳕鱼可以是 -

import java.util.*;

public class ArrayListFromNameList {

    public static void main(String[] args){

        List<String> nameList = new ArrayList<String>(){{
            add("boom");
            add("pow");
            add("bang");
        }};  

        Map<String, List<String> > vars  = new HashMap<String, List<String>>();

        for(int i=0; i<nameList.size(); i++){

           String key = nameList.get(i);
           List<String> value = new ArrayList<String>();
           vars.put(key, value);
        } 

    }

  /* Use the Map vars like this -
  * vars.get("boom") --> will reuturns you an ArrayList<String>();
  * similarly vars.get("pow") --> will returns you an ArrayList<String>();
  */
}
于 2015-05-25T19:57:21.110 回答