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

原创 2016年08月31日 10:14:06

一、集合

集合分为两种集合,一种是单列集合(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对象的时候才生效的。



版权声明:本文为博主原创文章,未经博主允许不得转载。

java集合框架---泛型总结

/* 泛型:指定集合类型,在运行而不是编译时时就发现问题,消除安全隐患。避免强转。 */ package pack; import java.util.ArrayList; import java....
  • sjtu_chenchen
  • sjtu_chenchen
  • 2015年04月23日 19:19
  • 995

Java基础知识总结(七)——泛型

心得: 我觉得Java泛型的意义在于在我们使用父类引用操作子类时(擦除),让编译器和JVM来代替我们进行必要的类型检查和转换(checkcast指令,桥方法,signature这些都是编译器和JVM...
  • Zerohuan
  • Zerohuan
  • 2015年12月31日 00:15
  • 983

JAVA 泛型,集合使用方法

工作内容: 1.集合学习 2.泛型学习 学习分享: 1.典型泛型集合List,HashMap 常用定义泛型集合: List list = new ArrayList(); 【存储类型必须是T类型,可以...
  • yingtian648
  • yingtian648
  • 2016年06月28日 09:55
  • 878

Java基础(集合框架——Collection、List、Set、泛型)

为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多 个对象的操作,就对对象进行存储,集合就是存储对象常用的一 种方式。 数组和集合类同是容器,有何不同? 数组...
  • zzamk
  • zzamk
  • 2015年03月18日 19:03
  • 1002

Java 集合与泛型

Java集合框架与泛型 首先整体概览,下图是Java集合框架的类图 高清类图的PDF下载地址:http://download.csdn.net/detail/mydream201...
  • mydream20130314
  • mydream20130314
  • 2015年04月04日 22:46
  • 507

Java中集合泛型带来了什么好处?

首先,了解一下Java关于泛型的概念。泛型,在C++中被称为模板,就是一种抽象的编程方式。当我们定义类和方法的时候,可以用一种通用的方式进行定义,而不必写出具体的类,这些未知的东西会在真正使用的时候在...
  • qq_33642117
  • qq_33642117
  • 2016年08月16日 21:50
  • 1755

Java基础之集合知识点总结一

集合----是用于存储对象的一个工具,集合和数组的特点
  • u011460827
  • u011460827
  • 2014年12月02日 12:40
  • 727

Java集合框架知识点总结

java集合一个很重要的知识点,里面包含的集合框架体系也是很大的,但是实际运用的重要还是ArrayList,本文对java集合部分知识点做概述。...
  • wenzhi20102321
  • wenzhi20102321
  • 2016年09月09日 15:08
  • 1510

Java 泛型 集合引用赋值问题(或方法传参)

迷茫点A List a = null; List b = null; a = b;//compile error b = a;//compile error 而下面有全可以 Object...
  • harrison2010
  • harrison2010
  • 2013年01月07日 16:31
  • 1440

泛型(一)集合中使用泛型

Why 1.解决元素存储的安全性问题 2.解决获取数据元素时,需要类型强转的问题 泛型的使用 1.在集合中使用泛型 2.自定义泛型类、泛型接口、泛型方法 3.泛型与继承的关系 4.通配符...
  • u010892841
  • u010892841
  • 2016年05月23日 16:24
  • 933
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java常用到的知识点总结之集合、泛型
举报原因:
原因补充:

(最多只允许输入30个字)