面向对象(5)集合框架
① 请说出数组这种数据结构的缺陷?
数组:(相同数据类型、连续分配空间)
(1)、数组的长度是固定的(不够,或者出现浪费的情况)
(2)、不能动态获取实际使用长度
(3)、内存空间是连续的
(4)、大批量的数据操作造成性能下降
② 请说出JAVA集合框架的相关内容?
(集合存储的是引用类型数据,可以是封装类型哦)
(1)、Java集合体系的逻辑包 rt.jar=======>>> java.util.*===========>>>各种类
A:Collection接口存储组不唯一,无序的对象
B:List接口存储一组不唯一,有序的对象
C:Set接口存储一组唯一,无序的对象
D:Map接口存储一组键值对,提供key(唯一的、无序的)到value(不唯一、无序的)的映射
③ 请说出List接口的常用实现类及其常用方法?
(1)、List接口常用的实现类:ArrayList(在实际开发经常使用)
int size(获取集合长度)
boolean isEmpty(判断是否集合为空)
boolean contains( Object obj)(判断集合是否包含某对象)
Itrator t();(对集合进行迭代操作)
public abstract Object[] toArray();
boolean add(Object obj);
boolean remove(Object obj);
void clear();
boolean equals(Object obj);
Object get(int i);
remove(int i);
List subList(int i,int j);
具体方法见反编译类……
④ 请说出Map接口的常用实现类及其常用方法?
Map接口的常用实现类:HashMap
常用方法:根据当前JDK的版本查看Map接口的方法
补充:熟记8个基本数据类型的包装类(封装类)
⑤ 请说出数组与集合的区别?
A:数组的长度是固定的、不能动态改变、不能动态获取数组的分配状态
B:集合的个数是动态的、可以动态获取集合的实际使用情况
C:数组可以存放基本数据类和封装类型如:Object[]
一般情况下、集合在声明时存放的是封装类型
D:在企业级开发中、数组仅仅提供有限的API
E:集合基于接口、类的理论知识进行封装、并且提供大量的、性能优良的API
F:数组在内存中开辟的连续的地址(内存)空间
G:集合可以根据开发需求、灵活的选择内存的分配方式
进一步通过底层的优越的算法、实现资源利用最大化
⑥ 如何使用Iterator遍历集合类?
认识、了解Iterator:
是一个接口====>游标
理论参考百度百科====>结合课堂实例
Iterator iterator = list.iterator();
while(iterator.hasNext())
{
// Object object = iterator.next();
Emp ep = (Emp)iterator.next();
System.out.println("员工编号:" + ep.getEmpno());
System.out.println("======================>");
}
⑦ 如何使用泛型集合,其优势是什么?
泛型:在开发中处理广泛的数据类型(以适应复制功能和多样化的数据类型)
JDK1.5以后提出的该技术概念
优势:
A:在程序编译的过程中就及时确认、审核集合容器中的数据类型
B:自动确认数据类型后,进行类型自动转换
C:提高了程序的健壮性
D:在企业级的开发中,减少代码量,提高开发效率。
⑧ 请说出Vector和ArrayList的区别?
Vector:线程中的同步机制===>线程安全
重安全、轻速度
ArrayList:不考虑线程安全
重速度、轻安全
⑨ 请说出Hashtable和HashMap的区别?
=====>上述面试题、后续展开参数
同步与异步的区别?