数组与集合的区别

一、定义

1.数组:数组的大小是固定的,并且只能存放同一种类型的数据(基本类型数据或引用类型数据);

2.集合:可以对数据数量不固定的数组进行存储和操作。如果程序中不清楚到底有多少对象,需要在容量不足的时候进行自动扩充,则需要使用集合,而不选择数组。

3.联系:可以通过相应的toArray和Arrays.asList()方法进行相互转换。

二、集合的接口区别

1.List:有序,元素可重复

ArrayList、LinkedList和Vector是三个主要的实现类。ArrayList是线程不安全的, Vector 是线程安全的,这两个类底层都是由数组实现的LinkedList是线程不安全的,底层是由链表实现的。

2.Set:元素不可重复

HashSet和TreeSet是两个主要的实现类。Set 只能通过游标来取值,并且值是不能重复的。

3.Map: 键值对集合

其中key列就是一个集合,key不能重复,但是value可以重复。HashMap、TreeMap和Hashtable是Map的三个主要的实现类。HashTable是线程安全的,不能存储 null 值;HashMap不是线程安全的,可以存储 null 值。

三、List与ArrayList的区别

1.List是接口,List特性就是有序,会确保以一定的顺序保存元素;

   ArrayList是它的实现类,是一个用数组实现的List。

2.如果在开发的时候觉得ArrayList,HashMap的性能不能满足你的需要,可以通过实现List,Map(或者Collection)来定制你的自定义类。


作者:桃花长相依
链接:https://www.imooc.com/article/253860
来源:慕课网

原文地址:https://www.cnblogs.com/xiekun96/p/14213405.html