集合-List实现类、泛型

来源:互联网 发布:淘宝店突然没生意了 编辑:程序博客网 时间:2024/06/04 17:47

一、

常见的数据结构

先进后出

队列

先进先出

数组

查询快、增删慢

链表

查询慢、增删快

 

二、List的三个儿子

ArrayListVectorLinkedList

ArrayList

底层数据结构是数组,查询快、增删慢。

线程不安全,效率高。

 

存储字符串和自定义对象:需要重写equals

A:判断是否为同一个对象

if(this==obj){return true;}

B :判断是否为该类的对象

if(!(obj instanceOf Student)){return false;}

C:向下转型,然后根据需求比较成员变量

Student s =(Student)obj;

return this.name.equals(s.name) && this.age == s.age;

 

遍历:迭代器、增强For、普通For+get

 

Vector

底层数据结构是数组,查询快、增删慢。

线程安全,效率低。

 

LinkedList

底层数据结构是链表,查询慢,增删快。

线程不安全、效率高。

 

LinkedList模拟栈数据结构(先进后出)

LinkedList<Object>ll

定义public void add(Object obj){ll.addFirst()}

定义public Object get(int i){ll.get(i)}

定义public int size(){return ll.size()}

 

使用:

是否安全?

YVector

NArrayListLinkedList——查询多:ArrayList(不知道也用)

  增删多:LinkedList

 

三、泛型

一种把明确类型的工作放在了创建对象或者调用方法时候去明确的特殊类型

格式:<格式类型>

 

优点:

A,解决了黄色警告线问题;

B,把运行期间的转换异常给提前到了编译时期;

C,优化了程序设计,不需要做强制类型转换了。


泛型的使用:看
API的;类或者接口,其后是否跟着<>,如果有,就是泛型的应用。一般在集合中用。

 

四、增强For循环

 

格式:

for(数组或者Collection集合的元素类型变量:数组或者Collection集合的对象){

直接使用变量即可

}

 

优点:方便了数组和Collection集合的遍历。

注意:

A,不要在增强for循环遍历集合的时候,用集合对集合本身进行修改

B,增强for循环是用来代替迭代器的。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0
原创粉丝点击