• JAVA集合三:几种Set框架


    参考链接:

    HOW2J.CN

    HashSet简单讲解

    HashSet

    HashSet与C++STL中Set基本类似,具有的特点便是:

    1. 集合中元素不可重复
    2. 集合中元素顺序 ≠ 插入顺序
    常用方法 功能
    add 向集合中添加元素
    clear 清空集合
    remove 删除集合中指定元素
    contains 查看是否包含某个元素
    size 集合中元素的数量
    package blog;
    
    import java.util.HashSet;
    
    public class Main {
        public static void main(String[] args) {
        	HashSet<Integer> set = new HashSet<Integer>();
        	int[] data = {1,2,3,2,1,2,4,6,3,1,3,8,9,4,23,2};
        	//筛除data中的重复元素
        	for(int i = 0; i < data.length; i++) {
        		set.add(data[i]);
        	}
        	//遍历集合
        	for(Integer i : set) {
        		System.out.print(i+" ");
        	}
        }
    }
    

    运行结果如下(顺序并不是加入集合的顺序):

    1 2 3 4 6 23 8 9

    LinkedHashSet 与 TreeSet

    LinkedHashSet、TreeSet操作与HashSet基本无二,但是LinkedHashSet使得集合中的元素按照插入的顺序排列,而TreeSet使得集合中的元素按照大小顺序排列

    package blog;
    
    import java.util.HashSet;
    import java.util.LinkedHashSet;
    import java.util.TreeSet;
    
    public class Main {
        public static void main(String[] args) {
        	HashSet<Integer> set = new HashSet<Integer>();
        	LinkedHashSet<Integer> linkSet = new LinkedHashSet<Integer>();
        	TreeSet<Integer> treeSet = new TreeSet<Integer>();
        	
        	int[] data = {1,2,3,2,1,2,4,6,3,1,3,8,9,4,23,2,14,16,15};
        	//筛除data中的重复元素
        	for(int i = 0; i < data.length; i++) {
        		int temp = data[i];
        		set.add(temp);
        		linkSet.add(temp);
        		treeSet.add(temp);
        	}
        	//遍历集合
        	for(Integer i : set) {
        		System.out.print(i+" ");
        	}
        	System.out.println();
        	for(Integer i : linkSet) {
        		System.out.print(i+" ");
        	}
        	System.out.println();
        	for(Integer i : treeSet) {
        		System.out.print(i+" ");
        	}
        }
    }
    

    三个集合的遍历结果如下(从上到下依次是HashSet、LinkedSet、TreeSet):

    16 1 2 3 4 6 23 8 9 14 15
    1 2 3 4 6 8 9 23 14 16 15
    1 2 3 4 6 8 9 14 15 16 23

  • 相关阅读:
    【转】linux清屏的几种方法
    【转】Ubuntu 64位系统安装交叉编译环境一直提醒 没有那个文件或目录
    【转】无法获得锁 /var/lib/dpkg/lock
    层级原理图设计方法
    【转】gcc 编译使用动态链接库和静态链接库
    【转】设置 vim 显示行号永久有效
    【转】VMware 全屏显示
    emwin之自绘制 BUTTON 图形的一些问题
    使用 sizeof 获取字符串数组的大小
    emwin之2D图形流位图显示的方法
  • 原文地址:https://www.cnblogs.com/theory/p/11884320.html
Copyright © 2020-2023  润新知