List,Set,Map用法以及区别
java集合的主要分为三种类型:
Set(集) List(列表) Map(映射)44 组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而java集合可以存储和操作数目不固定的一组数据。所有的Java集合都位于java.util包中!JAVA集合只能存放引用类型的数据,不能存放基本数据类型。
List:可以允许重复的对象,可以插入多个null元素,是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序。
常用的实现类有ArrayList,LinkedList和Vector。
ArrayList她提供了使用索引的随意访问,而LinkedList则对于经常需要从List中添加或删除元素的场合更为合适
Set:不允许重复对象
无序容器,无法保证每个元素的存储顺序,TrreSet通过Commparator或者Comparable维护了一个排序顺序
只允许一个null元素
Set最流行的几个实现类是HashSet,LinkedHashSet以及TreeSet
Map不是collection的子接口或者实现类。Map是一个接口
Map是一种把键和值对象映射的集合,它的每一个元素都包含一个键对象和值对象
Map的每个Entry都持有两个对象,也就是一个键一个值,Map可能会持有相同的值对象但键对象必须是唯一的。
TreeMap也通过Commparator或者Comparable维护了一个排序顺序
Map里可以拥有随意个null值但最多只能有一个null值
Map接口最流行的几个实现类是HashMap,LinkedHashMap,Hashtable和TreeMap
三者之间区别:
比较 List Set Map
继承接口 collection Collection
常见实现类AbstractList AbstractSet HashMap,HashTable
常见方法 (相同) put(),get(),remove(),clear(),containsKey(),containsValue(),keySet(),value
add(),remove(),get(),contains() size
元素 可重复 不可重复equals()判断 不可重复
元素 有序 无序由HashCode决定
线程安全 Vector线程安全 Hashtable线程安全