31、LinkedHashSet简介和练习
LinkedHashSet简介
通过LinkedHashSet的名字就可以看出,他的底层使用了链表的数据结构,因此LinkedHashSet的特点是读取元素的顺序跟存入元素的顺序是一致的,并且元素不能重复。
练习
1.生成10个1~20之间的整数,并且这些整数不能重复
2.将List中的元素进行去重
答案
1.HashSet的特点就是里面的元素不会重复,因此将生成的随机数放入到HashSet中,直到HashSet的size为10即可
package com.sutaoyu.list; import java.util.HashSet; import java.util.Random; public class list_test_16 { public static void main(String[] args) { HashSet<Integer> hs = new HashSet<>(); //创建随机数对象 Random r = new Random(); while(hs.size() < 10) { //生成1到20的随机数 int num = r.nextInt(20) + 1; hs.add(num); } for(Integer integer : hs) { System.out.println(integer); } } }
2.利用LinkedHashSet存取顺序一致和不能存储重复元素的特性来完成
package com.sutaoyu.list; import java.util.ArrayList; import java.util.LinkedHashSet; public class list_test_17 { public static void main(String[] args) { ArrayList<String> list = new ArrayList(); list.add("a"); list.add("a"); list.add("a"); list.add("b"); list.add("b"); list.add("b"); list.add("c"); list.add("c"); list.add("c"); System.out.println(list); System.out.println("去除重复后:"); LinkedHashSet<String> lhs = new LinkedHashSet<>(); //将list集合中的所有元素添加到lhs lhs.addAll(list); list.clear(); //将去除重复的元素添回到list中 list.addAll(lhs); System.out.println(list); } }