Set集合转化List集合

JAVA求代码因为不知道怎么获取Set里的值有问告诉我说转化List就能获取里面的元素... JAVA 求代码 因为不知道怎么获取Set里的值 有问告诉我说转化List就能获取里面的元素 展开
 我来答
帐号已注销
2020-12-09 · TA获得超过76.9万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:129万
展开全部

Set 有键和值 一个list只能取键或值。

import java.util.ArrayList;

import java.util.HashSet;

public class Test {

public static void main(String[] args) {

baiSet<String> set = new HashSet<String>(); //生成Set

set.add("apple"); //set添加数据

List<String> list = new ArrayList<String>();//生成List

Iterator<String> it = set.iterator(); //遍历Set

while(it.hasNext()){

list.add(it.next().toString()); //Set转化List

}

Iterator<String> it2 = list.iterator(); //遍历List

while(it2.hasNext()){

System.out.println(it2.next()); //输出List

}

扩展资料:

在列表中,数据项的顺序是确定的,也可以存在多个相同的数据项。列表支持的操作包括查找项目并找到其位置(若存在),将项目从列表中删除,在特定位置插入项目等。通常的队列,或称FIFO即是一个列表,该列表只能在一端添加项目,而在另一端删除项目。

而栈,或LIFO则只能在同一端添加或删除项目。不管是队列还是栈,集合中项目的顺序都应当是一定的,因此这两种情况只是列表的特例。其它列表支持的操作包括排序,再一次说明了其中顺序的重要性。

参考资料来源:百度百科-集合

当哆啦离开A梦
推荐于2019-09-03 · TA获得超过6383个赞
知道答主
回答量:47
采纳率:0%
帮助的人:2万
展开全部

因为List和Set都实现了Collection接口,且都实现了addAll(Collection<? extends E> c)方法,因此可以采用addAll()方法将List和Set互相转换;

另外,List和Set也提供了Collection<? extends E> c作为参数的构造函数,因此通常采用构造函数的形式完成互相转化。

//List转Set

Set<String> set = new HashSet<>(list);

System.out.println("set: " + set);

//Set转List

List<String> list_1 = new ArrayList<>(set);

System.out.println("list_1: " + list_1);

扩展资料:

List与Set区别:

List与 set 不同,列表通常允许重复的元素。更确切地讲,列表通常允许满足 e1.equals(e2) 的元素对 e1 和 e2,并且如果列表本身允许 null 元素的话,通常它们允许多个 null 元素。

难免有人希望通过在用户尝试插入重复元素时抛出运行时异常的方法来禁止重复的列表,但我们希望这种用法越少越好。

List 接口在 iterator、add、remove、equals 和 hashCode 方法的协定上加了一些其他约定,超过了 Collection 接口中指定的约定。为方便起见,这里也包括了其他继承方法的声明。

List 接口提供了 4 种对列表元素进行定位(索引)访问方法。列表(像 Java 数组一样)是基于 0 的。注意,这些操作可能在和某些实现(例如 LinkedList 类)的索引值成比例的时间内执行。因此,如果调用者不知道实现,那么在列表元素上迭代通常优于用索引遍历列表。

List 接口提供了特殊的迭代器,称为 ListIterator,除了允许 Iterator 接口提供的正常操作外,该迭代器还允许元素插入和替换,以及双向访问。还提供了一个方法来获取从列表中指定位置开始的列表迭代器。

List 接口提供了两种搜索指定对象的方法。从性能的观点来看,应该小心使用这些方法。在很多实现中,它们将执行高开销的线性搜索。

List 接口提供了两种在列表的任意位置高效插入和移除多个元素的方法。

参考资料:百度百科—list

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2018-02-23
展开全部
转换其实很简单,SET集合里面的元素是不重复的赚LIST是比较容易的
比如:
一个set集合A 要转换成一个LIST集合
那么可以这么写
List list = new ArrayList(A);
这样就能转换完成
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lf200812
2013-03-31 · TA获得超过710个赞
知道小有建树答主
回答量:150
采纳率:100%
帮助的人:96万
展开全部

如果你只是要获取set里的值,可以用Iterator

Set<Integer> set = new HashSet<Integer>();
set.add(10);
set.add(11);
set.add(14);
set.add(10);
Iterator<Integer> it = set.iterator();
while (it.hasNext())
{
System.out.print(it.next() + " ");
}

如果你是想转换成List,可以这样:

List<Integer> list = new ArrayList<Integer>(set);
for (int i = 0; i < list.size(); i++)
{
System.out.print(list.get(i) + " ");
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乌微月2S
2013-03-31 · TA获得超过5036个赞
知道大有可为答主
回答量:5361
采纳率:42%
帮助的人:2681万
展开全部

可以直接取啊

Set set=new HashSet();
List list=new ArrayList();
Iterator it=set.iterator();
while(it.hasNext()){
list.add(it.next());
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式