集合类解析(解析需勇气,打脸不在意)

集合类

概述:

  面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就需要对对象进行存储,那么集合就是存储   对象的最常用的一种方式

1.1使用集合类的应用场景:

一讲到集合,我们就要联想到数组;他们都能用来存储多个数据,可为什么实际开发工作中集合的应用要比数组多的多呢?

这是因为数组的长度一旦确定就不可以改变,而实际的开发工作中往往又无法确定数据数量,因此大家就都使用集合了。

1.2 集合框架中的接口结构:

分别有两大接口,Collection和Map。Collection接口Set和List接口;他们的常用实现类有Arraylist和linkedlist;HashSet和TreeSet。Map接口主要的两个实现类分别为HashMap和TreeMap。

(注:不止只有这些接口,它们还有很多接口,只是不常用。)

1.3Collection接口的特点:

a、实现Collection接口的类都必须提供2个标准的构造函数;一个是无参的构造函数用于创建一个空的Collection;另一个数     用于创建一个新的Collection。

b、每个Collection接口都支持一个Iterator()方法用于遍历Collection里面的元素。

    1.4 常用集合类之间的区别:

List:集合中允许重复元素,List集合中元素是有序的

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

  ArrayList特点:底层数据结构是数组,查询快,增删慢;线程不安全。

     Vector特点:底层数据结构是数组,查询快,增删慢;线程安全。

     Set:集合中不允许重复元素,List集合中元素不是有序的,但TreeSet是有序

HashSet:无序;不可重复;非线程安全的;集合元素允许为 NULL;如果两个对象通过 equals() 方法返回 true,这两个对象的 hashCode 值不一定相同。(解决办法:重写equals方法时请必须重写hashcode,以保证equals方法相等时两个对象hashcode返回相同的值)。

        TreeSet:有序;不可重复;非线程安全,底层使用红黑树算法。

     map:

HashMap:key不允许重复,value允许;不保证添加先后顺序,非线程安全,    key、value都可以为null;

HashTable:线程安全,key、value都不允许为null;

TreeMap:key不允许重复,value允许重复,会按自然或定制顺序排序

   

 

 

    

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值