set接口的框架

技术set接口的框架 set接口的框架1 package settest;2 3 import listtest.Person;4 import org.junit.Test;5 6 import ja

设置接口的框架

1个套装;

2

3导入列表测试。人;

4导入org . JUnit . test;

6导入Java . util . hashset;

7导入Java . util . iterator;

8导入Java . util . linkedhashset;

9导入Java . util . set;

10

11 /**

12 * 1.set接口的框架

13 */- Collection接口:单列集合,用于逐个存储对象。

14 */- Set接口:存储无序不可重复的数据。——《高中收藏》

15 */- HashSet:是Set接口的主要实现类;线程不安全;您可以存储空值。

16 */- LinkedHashSet:作为HashSet的子类,可以按照加法的顺序遍历其内部数据。

17 *对于频繁遍历操作,LinkedHashSet比HashSet效率更高。

18 */- TreeSet:可以根据添加对象的属性进行排序。放入TreeSet的数据必须是同一类新的对象。

19 *

20 * 2.集合接口中没有定义额外的新方法,但它们都在集合中定义。

21 * 3.要求:对于添加到集合中的数据,其类必须覆盖equals()和hashCode()。

22 * 重写后的equals()和hashCode()方法尽可能一致,即“相等的对象必须有相等的hash码”

23 *重写两种方法的技巧:应该使用对象中用作equals()方法比较的Field来计算hashCode。

24 *

25 * @作者付景超

26 * @ date : 2021/12/18-15:55

27 */

28公共类设置

29 /*

30 1.Set:存储无序且不可重复的数据。

31以HashSet为例说明:

31.无序:不等于随机性。基础数组中存储的数据不是按照数组索引的顺序添加的,而是根据数组的哈希值确定的。

33

34.重复性:保证当添加的元素按照equals()方法判断时,不能返回true,即同一元素只能添加一个元素。

35

36二。添加元素的过程(HashSet底层:数组加链表结构):以HashSet为例:

31.我们将元素A添加到HashSet中。首先,我们调用元素A所属类的hashCode()方法计算元素A的哈希值,然后通过某种算法在HashSet的底部计算这个哈希值。

38.数组中的存储位置(即对应的索引位置),用于确定数组的该位置是否已经有元素:

39 如果该位置没有其他元素,则添加成功。-情况1

40 如果这个位置有其他元素B(或者有链表形式的多个元素),首先比较元素A和B的哈希值:

41如果哈希值不相同,则成功添加元素A。-情况2

42如果哈希值相同,则需要在元素A所在的位置调用equals():

4Equals()返回true,则元素A的添加失败。

4Equals()返回false,则元素A添加成功。-情况3

45

46对于成功添加的情况2和3,元素A存储在链表中,数据已经在索引位置。

47对于jdk7:新元素A放在数组中,指向元素b。

48对于jdk8:元素B放在数组中,指向新元素a。

四十九

50

51 */

五十二

53 @测试

54 public void test1(){ 0

55 Set Set=new HashSet();

56 set . add(456);

57 set . add(123);

58 set . add(' AA ');

59 set . add(777);

60套。添加(新的人('汤姆',12));

61集。添加(新人物('汤姆',12));

62套.加(' CC ');

63

64 Iterator迭代器=set . Iterator();

65 while(iterator . HasNeXt()){ 0

66 system . out . println(iterator . next());

67 }

六十八

69 }

70

71 //LinkedHashSet的使用

72 //LinkedHashSet是Hash的一个子类。添加数据时,每个数据维护两个引用来记录前一个数据和后一个数据。

73 //优点:对于频繁的遍历操作,LinkedHashSet比HashSet效率更高。

74 @测试

75 public void test2(){ 0

76 Set Set=new link edhashset();

77 set . add(456);

78 set . add(123);

79套。添加(' AA ');

80套。添加(777);

81集。添加(新人物('汤姆',12));

82集。添加(新人物('汤姆',12));

83套。添加(' CC ');

84

85迭代器迭代器=设置。迭代器();

86 while(迭代器。HasNeXt()){ 0

87系统。出去。println(迭代器。next());

88 }

89

90 }

91

92 }

此为本人学习笔记,若有错误,请不吝赐教

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/154005.html

(0)

相关推荐

  • 凉州词意思,凉州词古诗王昌龄意思及解析

    技术凉州词意思,凉州词古诗王昌龄意思及解析凉州词(唐)王翰葡萄美酒夜光杯 凉州词意思,欲饮琵琶马上催。醉卧沙场君莫笑,古来征战几人回?
    译文
    美酒倒满了华贵的酒杯,当将士们正要畅饮的时候,马上琵琶突然不停地响起,在催促他

    生活 2021年10月20日
  • 化妆技巧初学化妆,学化妆的正确方法和技巧

    技术化妆技巧初学化妆,学化妆的正确方法和技巧化妆第一部,洗脸,然后擦干,油皮简单的来个爽肤水就行,干皮护肤品全套使用化妆技巧初学化妆。凉一会让脸上的护肤品吸收吸收。接着就是隔离防晒,我一般喜欢用带防晒的隔离。用手指整个脸

    生活 2021年10月23日
  • 鸟的英语怎么说,bird英语的读法怎么

    技术鸟的英语怎么说,bird英语的读法怎么bird英语读音:英 [bɜːd] 美 [bɜːrd]鸟的英语怎么说;n. 鸟;家伙;羽毛球;vt. 向…喝倒彩;起哄;vi. 猎鸟;观察研究野鸟;词汇搭配;1、breed bi

    生活 2021年10月25日
  • 如何构建一个自己的Base Image 镜像

    技术如何构建一个自己的Base Image 镜像如何构建一个自己的Base Image 镜像,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。m

    攻略 2021年10月19日
  • linux ubuntu怎么安装mysql

    技术linux ubuntu怎么安装mysql这篇文章主要讲解了“linux ubuntu怎么安装mysql”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux ub

    攻略 2021年11月26日
  • 20202320 2021-2022-1 实验七《查找与排序》实验报告

    技术20202320 2021-2022-1 实验七《查找与排序》实验报告 20202320 2021-2022-1 实验七《查找与排序》实验报告课程:《程序设计与数据结构》班级: 2023姓名: 陈欢

    礼包 2021年11月15日