繁体   English   中英

从现有的ArrayList创建ArrayList

[英]Create ArrayList from Existing ArrayList

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

ArrayList<String> item;

项目[0]->动臂

项目[1]->战俘

项目[2]->砰

项目[3]->赞

现在,我想做的是获取每个项目,并使用该项目的名称创建一个空的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 因此,可以将变量名视为访问存储在计算机内存中的valuekey 标准数据结构Map具有相似的key结构。 因此,我们可以在此处使用Map “ boom”用作键,将new ArrayList<String>()作为value.

假设您在nameList拥有所有名称(即,boom,pow,bang)-

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

现在,您要通过nameList给定的名称创建3个Stirng ArrayList 因此,您将它们像这样放入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>();
  */
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM