关键区别-列表与集合
大多数编程语言使用数组来存储一组相同类型的数据。数组的一个主要缺点是,一旦声明了数组大小,就不能修改它。如果程序员想存储一个超过数组大小的值,那么他应该创建一个新数组,并将现有元素复制到新数组中。在这些情况下,可以使用集合。在集合的支持下,可以添加元素、删除元素和许多其他操作。在Java等编程语言中有不同类型的集合。List和Set是集合层次结构的接口。其他接口的基本接口是Collection。List和Set的关键区别在于List支持多次存储同一个元素,Set不支持多次存储同一个元素。因此,集合不允许重复。
目录
1. 概述和主要区别
2. 什么是列表
3.设置了什么
4. 列表与集合的相似性
5. 并列比较-以表格形式列出与设置
6. 摘要
什么是列表(list)?
列表是扩展集合接口的接口。集合接口中有许多方法。add方法有助于添加元素。“remove方法”是删除元素。“addAll method”用于添加多个元素,而“removeAll method”用于从集合中移除元素。contains方法有助于查找列表中是否存在特定对象。“containsAll”用于查找集合中是否存在一组对象。iterator方法用于循环遍历列表中的项。由于List扩展了Collection,所以所有的Collection方法都属于List。除了这些方法之外,列表还有get和set等方法。程序员可以使用get方法在特定索引处获取值。程序员可以使用set方法在特定索引处设置值。“indexOf”用于查找元素的索引。
在列表中,可以根据位置执行操作。程序员可以提供要添加到索引中的数据元素。所以它会被添加到具体的索引中。如果程序员没有给出索引,元素将被添加到列表的末尾。它还保持**的顺序。如果添加了元素1,然后添加了元素2,那么元素1将位于元素2之前。
ArrayList,LinkedList,Vector是一些实现List的类。在ArrayList中,访问元素的速度很快,但**和删除速度较低。ArrayList不是线程安全的。从多个线程访问同一个ArrayList可能不会得到相同的结果。在LinkedList中,元素同时链接到backward和forward。使用LinkedList**和删除元素比ArrayList快。LinkedList实现列表和队列。Vector类似于ArrayList,但它是安全的,因为所有方法都是同步的。
什么是设置(set)?
Set是扩展集合接口的接口。由于Set接口扩展了Collection,所以所有的Collection方法也都属于Set。集合不支持重复值。因此,程序员不能将同一个元素存储两次。它维护一组独特的元素。SortedSet接口扩展了Set接口。SortedSet按排序顺序维护元素。NavigableSet接口扩展了SortedSet。NavigableSet提供了导航方法,如lower、floor、天花板等。
HashSet、LinkedHashSet和TreeSet是一些实现Set接口的类。HashSet实现Set接口。它不保持**的顺序。如果值以a,x,b的形式**,它可能存储为,x,a,b。LinkedSet保持**顺序。如果元素以a,x,b的顺序**,则存储顺序为a,x,b。树集实现Set和NavigableSet。它不保持**的顺序,但按排序的顺序存储元素。如果**的顺序是a、c、b,那么元素将被存储为a、b、c。所有HashSet、LinkedHashSet和TreeSet都不会有任何重复的元素。
列表(list)和设置(set)的共同点
- 列表和集合接口都扩展了集合接口。
- 列表和集合都支持添加、删除元素等操作。
列表(list)和设置(set)的区别
列表与集合 | |
列表接口是集合的子接口,它包含根据索引执行**、删除等操作的方法。 | Set Interface是集合的子接口,它包含在维护唯一元素的同时执行**、删除元素等操作的方法。 |
班级 | |
ArrayList、Vector和LinkedList是实现列表接口的类。 | HashSet、LinkedHashSet和TreeSet是实现Set接口的类。 |
元素复制 | |
列表支持元素的重复。 | 集合不支持元素的重复。元素是独一无二的。 |
总结 - 列表(list) vs. 设置(set)
集合用于动态存储元素。Java等编程语言提供了集合接口。列表和集合是两个属于集合接口的接口。两个接口都扩展了集合。本文讨论了列表与集合的区别。List和Set的关键区别在于List支持多次存储同一个元素,Set不支持多次存储同一个元素。集合始终保持唯一的元素。