从现有的 ArrayList 创建 ArrayList

Create ArrayList from Existing ArrayList

我有一个如下所示的 ArrayList:

ArrayList<String> item;

item [0] --> boom

项目 [1] --> pow

item [2] --> bang

项目[3] --> zing

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

ArrayList<String> boom; 

ArrayList<String> pow; 

ArrayList<String> bang;

ArrayList<String> zing;

对不起,如果这是一个简单的答案,但我还在学习。

如果我理解你的问题,那么你可以使用 Map<String, ArrayList<String>> map,检查标题是否已经存在(如果不存在,则创建一个新的 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<>());
}
// ... 

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

假设您拥有 nameList -

中的所有名称(即 boom、pow、bang)
ArrayList nameList = new ArrayList(){{
    add("boom");
    add("pow");
    add("bang");
}};  

现在您想用 nameList 中给定的名称创建 3 ArrayListStirng。所以你把它们放在 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>();
  */
}