(一)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));
参考资料:
千锋扣丁学堂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个元素等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)