【问题标题】:Moving data from a HashSet to ArrayList in Java在 Java 中将数据从 HashSet 移动到 ArrayList
【发布时间】:2012-11-17 21:38:16
【问题描述】:
我在 Java 中有以下 Set:
Set< Set<String> > SetTemp = new HashSet< Set<String> >();
我想将其数据移动到ArrayList:
ArrayList< ArrayList< String > > List = new ArrayList< ArrayList< String > >);
有可能这样做吗?
【问题讨论】:
标签:
java
list
data-structures
arraylist
hashset
【解决方案1】:
我们有这些方法可以在 java 中将 hashet 转换为 ararylist
方法一:我们将hashset作为参数传入arraylist/list as的构造函数
Set<String> hs = new HashSet<String>();
hs.add("java");
hs.add("php");
hs.add("html");
List<String> list = new ArrayList<String>(hs);
方法2:迭代Hashset并在列表中逐个添加元素
for (String str : hs) {
arraylist.add(str);
}
方法:使用 arr.addAll() 方法
With the help of addAll() you can add collection into list
参考:How to Convert HashSet to a List/ArrayList
【解决方案2】:
你可以使用Stream和collector来做到这一点,我希望这是最简单的方法
listname = setName.stream().collect(Collectors.toList());
【解决方案3】:
你可以使用addAll():
Set<String> gamesInstalledTemp = new HashSet< Set<String> >();
List<String> gamesInstalled = new ArrayList<>();
gamesInstalled.addAll(gamesInstalledTemp);
【解决方案4】:
将数据 HashSet 移动到 ArrayList
Set<String> userAllSet = new HashSet<String>(usrAllTemp);
List<String> usrAll = new ArrayList<String>(userAllSet);
这里的usrAllTemp 是一个ArrayList,它有一些值。
同样的方式 usrAll(ArrayList) 从 userAllSet(HashSet) 获取值。
【解决方案5】:
你只需要循环:
Set<Set<String>> setTemp = new HashSet<Set<String>> ();
List<List<String>> list = new ArrayList<List<String>> ();
for (Set<String> subset : setTemp) {
list.add(new ArrayList<String> (subset));
}
注意:您应该以小型大写字母开头变量名以遵循 Java 约定。