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);
}
}
05-07 15:49