[英]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.