问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java集合类的Set总结:

发布网友 发布时间:2022-04-26 02:55

我来回答

2个回答

懂视网 时间:2022-04-18 20:29

set()集合

集合的创建方法:

1 #集合是无序的不重复的2 li = [11,22,11,33]3 a = set(li)4 print(a)5 {33,22,11}
a = {11,22,33,44= {22,5577= {11,22,33,44= {22,55c =(a)

#discard移除集合不存在的元素不会报错,remove移除会报错
a.discard(99)
#intersection()取交集,intersection_update()同上

Set接口的实现类

要使用Set集合,通常情况下需要声明为Set类型,然后通过Set接口的实现类来实例化。Set接口的实现类常用的有HashSet和TreeSet类。语法格式如下:

Set<String>collSet=new HashSet<String>();

Set<String>collSet2=new TreeSet<String>();

由于Set集合中的对象是无序的,遍历Set集合的结果与插入Set集合的顺序并不相同。

热心网友 时间:2022-04-18 17:37

1. Set实现的基础是Map(HashMap);
2. Set中的元素是不能重复的,如果使用add(Object obj)方法添加已经存在的对象,则会覆盖前面的对象
为什么要使用集合类
当你事先不知道要存放数据的个数,或者你需要一种比数组下标存取机制更灵活的方法时,你就需要用到集合类。 集合类存放于java.util包中。
集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。
集合类型主要有3种:set(集)、list(列表)和map(映射)。
(1)集
集(set)是最简单的一种集合,它的对象不按特定方式排序,只是简单的把对象加入集合中,就像往口袋里放东西。
对集中成员的访问和操作是通过集中对象的引用进行的,所以集中不能有重复对象。
集也有多种变体,可以实现排序等功能,如TreeSet,它把对象添加到集中的操作将变为按照某种比较规则将其插入到有序的对象序列中。它实现的是SortedSet接口,也就是加入了对象比较的方法。通过对集中的对象迭代,我们可以得到一个升序的对象集合。
(2)列表
列表的主要特征是其对象以线性方式存储,没有特定顺序,只有一个开头和一个结尾,当然,它与根本没有顺序的集是不同的。
列表在数据结构中分别表现为:数组和向量、链表、堆栈、队列。
关于实现列表的集合类,是我们日常工作中经常用到的,将在后边的笔记详细介绍。
(3)映射
映射与集或列表有明显区别,映射中每个项都是成对的。映射中存储的每个对象都有一个相关的关键字(Key)对象,关键字决定了 对象在映射中的存储位置,检索对象时必须提供相应的关键字,就像在字典中查单词一样。关键字应该是唯一的。
关键字本身并不能决定对象的存储位置,它需要对过一种散列(hashing)技术来处理,产生一个被称作散列码(hash code)的整数值,
散列码通常用作一个偏置量,该偏置量是相对于分配给映射的内存区域起始位置的,由此确定关键字/对象对的存储位置。理想情况 下,散列处理应该产生给定范围内均匀分布的值,而且每个关键字应得到不同的散列码。 java.util*有13个类可用于管理集合对象,它们支持集、列表或映射等集合,以下是这些类的简单介绍
集:
HashSet: 使用HashMap的一个集的实现。虽然集定义成无序,但必须存在某种方法能相当高效地找到一个对象。使用一个HashMap对象实现集的存储和检索操作是在固定时间内实现的.
TreeSet: 在集中以升序对对象排序的集的实现。这意味着从一个TreeSet对象获得第一个迭代器将按升序提供对象。TreeSet类使用 了一个TreeMap.
列表:
Vector: 实现一个类似数组一样的表,自动增加容量来容纳你所需的元素。使用下标存储和检索对象就象在一个标准的数组中一样 。你也可以用一个迭代器从一个Vector中检索对象。Vector是唯一的同步容器类??当两个或多个线程同时访问时也是性能良好的。
Stack: 这个类从Vector派生而来,并且增加了方法实现栈??一种后进先出的存储结构。
LinkedList: 实现一个链表。由这个类定义的链表也可以像栈或队列一样被使用。
ArrayList: 实现一个数组,它的规模可变并且能像链表一样被访问。它提供的功能类似Vector类但不同步。
映射:
Hashtable: 实现一个映象,所有的键必须非空。为了能高效的工作,定义键的类必须实现hashcode()方法和equal()方法。这个类 是前面java实现的一个继承,并且通常能在实现映象的其他类中更好的使用。
HashMap: 实现一个映象,允许存储空对象,而且允许键是空(由于键必须是唯一的,当然只能有一个)。
WeakHashMap: 实现这样一个映象:通常如果一个键对一个对象而言不再被引用,键/对象对将被舍弃。这与HashMap形成对照,映象 中的键维持键/对象对的生命周期,尽管使用映象的程序不再有对键的引用,并且因此不能检索对象。
TreeMap: 实现这样一个映象,对象是按键升序排列的。
Set和List都是由公共接口Collection扩展而来,所以它们都可以使用一个类型为Collection的变量来引用。这就意味着任何列表或集构成的集合都可以用这种方式引用,只有映射类除外(但也不是完全排除在外,因为可以从映射获得一个列表。)所以说,把一个
列表或集传递给方法的标准途径是使用Collection类型的参数。
Vector 还是ArrayList,哪一个更好,为什么?
要回答这个问题不能一概而论,有时候使用Vector比较好;有时是ArrayList,有时候这两个都不是最好的选择。你别指望能够获得 一个简单肯定答案,因为这要看你用它们干什么。下面有4个要考虑的因素:
(1)API
(2)同步处理
(3)数据增长性
(4)使用模式
下面针对这4个方面进行一一探讨

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
请问信用卡暂未批准是什么意思 短发搭配什么帽子能吸睛?get下文各种短发的搭配攻略 入门智能机vivoy200t怎么样? 直短发配什么帽子好看 老狗狗为什么总低头 脚跟骨裂做了手术还装了钢板,请问要多长时间才能恢复。 脚跟粉碎性骨折术后多久能走路 脚跟骨折多久可以正常走路 如图,AD是∠BAC的平分线,点E在AB上,且AE=AC,EF ∥ BC交AC于点F.试说明... 如图,AD是角BAC的平分线,点E在AB上,且AE=AC,EF//BC交AC于点F.求证:EC... 呼和浩特有堪比烧麦和杂碎的小吃吗? 华为P10手机桌面上无端自动下载生成图标软件怎么解决? 淘宝手机应用app里面的商品信息是自动生成的吗? 每打开一个手机软件都自动创建快捷方式,怎么取消这个 保险公司的意外险是不是都是消费型的 一年期消费型意外险 安卓手机一个软件自己变成一个文件夹了,这是怎么回事? 广大网友,有没有一键生成图片带文字(如下图)的手机APP啊?然后图片和文字可以根据自己的喜好随意编辑 消费型的人身意外险条款有哪些 人身意外险是买储蓄型的还是消费型的合适呢 手机自动添加软件怎么回事? 想咨询一下什么是消费型人身意外险,消费型人身意外险有哪些 意外消费型保险是什么 消费型意外险包括哪些范围 剪映最大能剪几个g的视频 做视频剪辑音频剪辑合成一套市面价是多少 一天剪多少条视频是指成品吗 小白!视频剪辑大概多少钱一分钟? 没有剪过视频的新手,剪辑一个四到五分钟左右的视频大概要花多久时间? 如何查寻手号码所在地(不是归属地)目的是查使用者在什么地方? Java中set什么意思 java中set的用法 java中的get 和set 是什么意思 java中的set方法 怎样从java集合类set中取出数据? java编程关于set 如何理解并正确运用Java中的set函数 java的set方法 java 集合set类中是如何实现数据不能重复的? java中Set集合可以允许有多个空值吗? 相机中的“hdr”和“live”是什么意思? 苹果iPhone6相机HDR是什么?HDR有什么功能 手机HDR是什么功能 请问枸杞吃了有什么好处?有什么功效?谢谢 铝的密度是多少: 梦幻西游80衣服问题 我的这个想法会实现吗 “吮吸”是什么意思? 普通动物学知识汇总 荔枝的枝、干、叶、花、果的特点有哪些?