数组和集合哪个效率高_集合框架(一)

1:集合的由来?

数组的长度是固定的,当所添加的元素大于数组的长度时,需要对数组重新定义,太麻烦了,而java内部中提供的集合类能储存任意对象且长度是可变的,随着元素的长度的增减而增减。

2:集合和数组的区别?

区别一:

数组既可以储存基本数据类型,也可以储存引用数据类型,区别在于基本数据类型储存的是值,引用数据类型储存的是地址值

集合可以储存引用数据类型(对象),也可以储存基本数据类型,只不过在储存的时候会自动装箱变成对象

区别二:

数组长度固定不可增长、

集合长度不固定,可以根据元素的增减而增减

3:Collection集合的功能概述?

通过查找api

a1ce545aed82eca48e536bd80c373f4c.png

4:Collection集合存储字符串并遍历?(迭代器)

迭代器:集合是用来储存元素的,元素的储存需要迭代(遍历)

91360c29d9a1024e2e9d9183ce54fad5.png

5:Collection集合存储自定义对象并遍历?(迭代器)

* Collection存储自定义对象并用迭代器遍历

*

e8f5661c23c2530a82cf285395f97617.png

6:List集合的特有功能?

* void add(int index,E element) //在指定位置添加元素

* E remove(int index) //移除指定位置的元素

* E get(int index) //返回列表中指定位置的元素

* E set(int index,E element) //用指定元素替换列表中指定位置的元素

7:List集合存储自定义对象并遍历?(迭代器和普通for)

618b02299a6e1721ee1a090469e9dc92.png

8:并发修改异常出现的原因?解决方案?

b56f86e559d2830086c1ff53f4aa52c4.png

9:常见的数据结构的特点?

数组:查询快,修改快,增删慢

链表:查询慢,修改慢,增删快

10:List集合的子类特点

ArrayList:底层数据结构是数组,查询快,增删慢,线程不安全,效率高

Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低

LinkedList:底层数据结构是链表,查询慢,增删快,线程不安全,效率高

11:List的三个儿子你准备使用谁?请说明理由。

查询多用ArrayList

增删多用LinkedList

都多用ArrayList