星空网 > 软件开发 > Java

HashSet 浅析示例

* 1、继承自抽象类 AbstractSet,实现接口 Set、Cloneable、Serializable;
* 2、元素无顺序;
* 3、元素不可重复;
* 4、采用哈希算法插入数据,插入速度快;
* 5、非线程安全,轻量级;
* 6、由于实现了接口 Cloneable,故此可以被复制;
* 7、由于实现了接口 Serializable,故此可以被序列化到磁盘上;

 

 1 package com.smbea.demo; 2  3 import java.util.HashSet; 4 import java.util.Iterator; 5 import java.util.Set; 6  7 /** 8  * 1、继承自抽象类 AbstractSet,实现接口 Set、Cloneable、Serializable; 9  * 2、元素无顺序;10  * 3、元素不可重复;11  * 4、采用哈希算法插入数据,插入速度快;12  * 5、非线程安全,轻量级;13  * 6、由于实现了接口 Cloneable,故此可以被复制;14  * 7、由于实现了接口 Serializable,故此可以被序列化到磁盘上15  * @author hapday16  * @date 2016年7月9日 下午8:27:1617  *18 */19 public class HashSetDemo {20   public static void main(String[] args) {21     elementUnrepeatableTest();22     23     elementInconsecutiveTest();24   }25 26   /**27    * 验证【元素不可重复】28   */29   public static void elementUnrepeatableTest() {30     int num1 [] = new int[]{7,8,9};31     int num2 [] = num1;32     33     Set<Object> set = new HashSet<Object> ();34     set.add(1);35     set.add(2);36     set.add(3);37     set.add(3);38     set.add("string");39     set.add(num1);40     set.add(num2);41     set.add("中文");42     set.add("中文也不可重复");43     set.add("中文也不可重复");44     45     System.out.println("*** 元素不可重复 ***");46     Iterator<Object> iterator = set.iterator();47     while(iterator.hasNext()){48       System.out.print(iterator.next() + " - ");49     }50     51     System.out.println("\n*** 元素不可重复(forEach) ***");52     for(Object object : set){53       System.out.print(object + " - ");54     }55     56     System.out.println("\n*** 元素不可重复(toString()) ***");57     System.out.print(set);58   }59 60   /**61    * 【元素无顺序】62   */63   public static void elementInconsecutiveTest() {64     Set<Integer> set = new HashSet<Integer> ();65     for(int index = 1; index <= 100000; index++){66       set.add(index);    // 加入 10 万的元素67     }68     69     boolean exists = false;    // 是否存在:true-存在;false-不存在70     int count = 0;  // 存在数,多次执行,我们发现当元素的个数为 10W 时,这个值是不变的,均为 17232,这在一定程度上说明哈希算法是相对稳定的71     int current = 0;  // 当前元素72     int previous = 0;  // 上一个元素73     Iterator<Integer> iterator = set.iterator();74     while(iterator.hasNext()){75       current = iterator.next();76       if(current <= previous){77         exists = true;78         count++;79       }80       81       previous = current;82     }83     84     System.out.println("\n*** 元素无顺序 ***");85     System.out.print("是否无顺序:" + exists + ", 可能的顺序数为:" + count);86   }87 }

 




原标题:HashSet 浅析示例

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

关键词如何设定,才能让listing更快上首页?:https://www.ikjzd.com/articles/114609
Shopee专访:卖家看过来!当下就是中国卖家和品牌出海东南亚的绝佳时机!:https://www.ikjzd.com/articles/11461
选品推荐----Car Cleaning Kit 汽车清洁套件:https://www.ikjzd.com/articles/114610
dropshipping怎么做 退货怎么处理?:https://www.ikjzd.com/articles/114611
侵权下架!BRISTLY 狗狗磨牙棒又出新案,批量卖家被告!:https://www.ikjzd.com/articles/114612
BRISTLY 狗狗磨牙棒又出侵权案,批量卖家被告!:https://www.ikjzd.com/articles/114613
TikTok 将推出先买后付服务 :https://www.kjdsnews.com/a/1836651.html
TikTok 将推出先买后付服务 :https://www.goluckyvip.com/news/188219.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流