1、数据结构
常见数据结构:
1) 数组
2) 栈
3) 队列
4) 链表
5) 树
6) 图
7) 堆
8) 散列表
2、栈和队列数据结构
栈的特点:先进后出
举例: 弹夹. 最先进去的子弹,最后打出.
队列的特点:先进先出
举例:超市排队交款. 谁先排队,谁先出去.
3、数据结构之数组
1) 数组是相同数据类型的元素的集合。
2) 数组中的各元素是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
注 -- 这个顺序是指的存储顺序。
数组特点:查询快,增删慢。
4、数据结构之链表
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
链表特点:查询慢,增删快。
5、List
-- ArrayList
底层数据结构是数组,查询块、增删慢
线程不安全,效率高
-- Vector
底层数据结构是数组,查询快、增删慢
线程安全,效率低
-- LinkedList
底层数据结构是链表,查询慢、增删快
线程不安全,效率高
6、ArrayList存储自定义对象去重复
重写equals()方法
7、Vector的特有功能(理解)
添加
public void addElement(Object obj)
获取
public Object elementAt(int index)
public Enumeration elements()
长度
public int size()
注:了解下,看到别人这样写能知道是什么就可以了,现在基本不用了。
8、LinkedList特有功能
添加:
void addFirst(Object o)
void addLast(Object o)
获取:
Object getFirst()
Object getLast()
删除:
Object removeFirst()
Object removeLast()
9、面试题:通过LinkedList模拟栈数据结构
栈数据结构特点:先进后出。
10、泛型
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
(1)泛型是一种把明确类型的工作放在了创建对象或者调用方法时候才去明确的特殊的类型。
(2)格式:
<数据类型>
(3)好处:(掌握)
A:解决了黄色警告线问题
B:把运行期间的转换异常给提前到了编译期间
C:优化了程序设计,不需要做强制类型转换了
泛型使用:
泛型类
泛型方法
泛型接口
11、增强for
替代迭代器。
注意:不能在使用增强for循环的时,对集合里的元素做出改变。
并发访问异常。 |
|