关闭

java常用到的知识点总结之集合、泛型

标签: java常用到的知识点总结上集合泛型java
109人阅读 评论(0) 收藏 举报
分类:

一、集合

集合分为两种集合,一种是单列集合(Collection),另外一种是双列集合(Map)。
1.单列集合:
单列集合Collection简单继承关系:

首先我们从左向右看:

List集合:有存储顺序,可以重复。

ArrayList集合:ArrayList集合底层是数组实现的。
特点:查询快,增删慢,线程不安全。

LinkedList集合:LinkedList集合底层是链表结构的。
特点:查询慢,增删快,线程不安全。

Vector集合:Vector集合底层也是数组实现。
特点:查询、增删都慢,但是线程安全。

List集合常用方法总结:
boolean add(E e):将指定元素添加到集合的尾部。
void add(int index,E element):将指定的元素插入集合中的指定位置。
boolean addAll(Collection<? extends E> c):将Collection集合中的所有元素添加到集合的尾部。
void clear():移出集合中的所有元素。
boolean contains(Object o):判断集合中是否包含指定元素,判断根据equals方法进行判断。
E get(int index):获取集合中指定位置的元素。
E remove(int index):移除集合中的指定位置的元素。
int size():获取集合中元素的个数。
Object[] toArray():将集合转换成数组。

   

   Set集合:无存储顺序,不可重复。

   HashSet集合:底层是哈希表实现的,存储速度快,线程不安全。

当向HashSet中添加一个元素时,会先使用元素的hashCode方法和之前的元素进行判断hashCode值是否相等,若不相等,添加进去,若相等,则再使用equals方法和之前的元素进行判断,所相等不添加,若不相等则添加进集合。

LinkedHashSet集合:底层是链表结构。线程不安全。

TreeSet集合:默认会对集合中元素进行自然排序,由于需要排序 性能和HashSet相比较差。


2.双列集合:Map集合。

Map集合继承结构:


Map集合也称为键值对集合,其中维护了键和值,我们可以通过键来找到指定的值,其中键不可以重复,值可以重复。

HashMap集合:线程不安全,存取速度快,底层是哈希表实现。键和值都可以存储null值。

TreeMap集合:线程不安全,底层是红黑树(二叉树),它会自动对键进行排序。

HashTable集合:线程安全,底层是哈希表,键和值都不可以为null值。

二、泛型

首先来谈谈泛型的好处:将运行时异常提升到了编译期,明确了数据的类型不用做强制类型转换,

泛型的几种书写格式:前后泛型一定要一致,如前面写了泛型后面可以不用写,或者后面写了前面可以不用写。

ArrayList<String> list1 = new ArrayList<>();//true
ArrayList list2 = new ArrayList<String>();//true
//注意这种是错误的
//ArrayList<> list2 = new ArrayList<String>();
//ArrayList<String> list3 = new ArrayList<Object>();//false
//ArrayList<Object> list4 = new ArrayList<String>();//false


泛型方法的定义:

//定义一个参数类型和返回值类型相同的泛型方法

public <T> T methodName(T t){

return t;

}


泛型类的定义:在类上定义了泛型,在类中就可以使用泛型。

class 类名<自定义的泛型>{

}

class Person<T>{

}

泛型接口的定义:和泛型类相似。

interface 接口名 <自定义的泛型>{

}


interface MyInter<T>{

}

注意事项:泛型是在new对象的时候才生效的。



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:665次
    • 积分:64
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档