List,Map,Set三个接口存取元素时,各有什么特点

List,Map,Set三个接口存取元素时,各有什么特点,第1张

(一)List

1、可以允许重复的对象。

2、可以插入多个null元素

3、是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序。

4、常用的实现类有 ArrayList、LinkedList

Vector。ArrayList

最为流行,它提供了使用索引的随意访问,而

LinkedList

则对于经常需要从

List

中添加或删除元素的场合更为合适。

(二)Set

1、不允许重复对象。

2、无序容器,你无法保证每个元素的存储顺序,TreeSet通过

Comparator

或者

Comparable。

3、只允许一个

null

元素。

4、Set

接口最流行的几个实现类是

HashSet、LinkedHashSet

以及

TreeSet。最流行的是基于

HashMap

实现的

HashSet。

(三)map

1、Map不是collection的子接口或者实现类。Map是一个接口。

2、Map

每个

Entry

都持有两个对象,也就是一个键一个值,Map

可能会持有相同的值对象但键对象必须是唯一的。

3、TreeMap

也通过

Comparator

或者

Comparable

维护了一个排序顺序。

4、Map

里你可以拥有随意个

null

值但最多只能有一个

null

键。

5、Map

接口最流行的几个实现类是

HashMap、LinkedHashMap、Hashtable

TreeMap。(HashMap、TreeMap最常用)。

扩展资料

list和set、map之间的转化方式:

1、list转成set集合

Set

studentSet=studentListstream()map(Student::getId)collect(CollectorstoSet());

2、list转成map

Map

studentMap=studentListstream()collect(CollectorstoMap(Student::getId,a

->

a,(k1,k2)->k1));

3、list转成map并且根据student中的name进行分组

Map<String,List>

group=studentListstream()collect(CollectorsgroupingBy(Student::getName));

参考资料:

百度百科-java集合

千锋扣丁学堂iOS开发学习为您解答:

1、集合:集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址;不过NSArray是有序的集合,NSSet是无序的集合。

集合是一种哈希表,运用散列算法,查找集合中的元素比数组速度更快,但是它没有顺序。

NSSet set = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];2 [set count]; //返回集合中对象的个数

判断集合中是否拥有某个元素

//判断集合中是否拥有@“two”2 BOOL ret = [set containsObject:@"two"];

判断两个集合是否相等

NSSet set2 = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];2 //判断两个集合是否相等3 BOOL ret = [set isEqualToSet:set2];

判断set是否是set2的子集合

NSSet set2 = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five", nil];2 //判断set是否是set2的子集合3 BOOL ret = [set isSubsetOfSet:set2];

集合也可以用枚举器来遍历

//集合也可以用枚举器来遍历2 NSEnumerator enumerator = [set objectEnumerator];3 NSString str;4 while (str =[enumerator nextObject]) {5 ……6 }

通过数组来初始化集合(数组转换为集合)

NSArray array = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];2 NSSet set = [[NSSet alloc] initWithArray:array];

集合转换为数组

NSArray array2 = [set allObjects];

2、可变集合NSMutableSet

//可变集合NSMutableSet2 NSMutableSet set = [[NSMutableSet alloc] init];3 [set addObject:@"one"];4 [setaddObject:@"two"];5 [set addObject:@"two"]; //如果添加的元素有重复,实际只保留一个

删除元素

//删除元素2 [set removeObject:@"two"];3 [set removeAllObjects];

将set2中的元素添加到set中来,如果有重复,只保留一个

//将set2中的元素添加到set中来,如果有重复,只保留一个2 NSSet set2 = [[NSSet alloc] initWithObjects:@"two",@"three",@"four", nil];3 [set unionSet:set2];

删除set中与set2相同的元素

[set minusSet:set2];

3、指数集合(索引集合)NSIndexSet

//指数集合(索引集合)NSIndexSet2 NSIndexSet indexSet = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(1,3)]; //集合中的数字是123

根据集合提取数组中指定位置的元素

//根据集合提取数组中指定位置的元素2 NSArray array = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];3 NSArray newArray = [array objectsAtIndexes:indexSet]; //返回@"two",@"three",@"four"

4、可变指数集合NSMutableIndexSet

NSMutableIndexSet indexSet = [[NSMutableIndexSet alloc] init];2 [indexSet addIndex:0]3 [indexSet addIndex:3];4[indexSet addIndex:5];5 //通过集合获取数组中指定的元素6 NSArray array = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five",@"six", nil];7 NSArray newArray = [array objectsAtIndexes:indexSet]; //返回@"one",@"four",@"six"

hashset集合无法得到里面的第n个元素。

PS:因为hashset集合是无序集合,集合元素顺序不固定,所以无法指定获取第n个元素。

HashSet 集合:

HashSet<T> 类是一个实现 ICollection 接口和 ICollection<T> 泛型接口的 set 集合。从 NET Framework 4开始,HashSet<T> 类实现了 ISet<T> 类。

HashSet 集合类型:

UnionWith:并集或 Set 加法

IntersectWith:交集

ExceptWith:Set 减法

SymmetricExceptWith:余集

在Python中,可以使用集合(Set)的差集 *** 作来查找除了提供的元素以外的元素。差集 *** 作可以返回在一个集合中,但不在另一个集合中的元素。

例如,假设有一个集合set1,其中包含一些元素,我们想要查找除了element以外的所有元素。可以使用差集 *** 作,如下所示:

element = 3

set1 = {1, 2, 3, 4, 5}

result = set1difference({element})

print(result)

输出:

{1, 2, 4, 5}

在上面的代码中,首先指定了要查找的元素element,然后使用set1difference({element})来计算set1和一个只包含element的集合的差集,即除了element以外的所有元素。最后,将结果赋值给result变量并打印输出。

注意,差集 *** 作返回一个新的集合,原始集合不会被修改。

有帮到你的话望采纳 谢谢~

以上就是关于List,Map,Set三个接口存取元素时,各有什么特点全部的内容,包括:List,Map,Set三个接口存取元素时,各有什么特点、ios nsset 里的数据怎么取、如何得到hashset集合里的第n个元素等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9556235.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存