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);    
    }
}

 

posted @ 2018-12-18 10:52  追风的小蚂蚁  阅读(375)  评论(0编辑  收藏  举报