[英]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
。 因此,可以将变量名视为访问存储在计算机内存中的value
的key
。 标准数据结构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.