集合框架:List、Set、Map 区别  ;集合数组的区别;常用方法说明;@SuppressWarnings 注解

学习过程  文章出错的地方  希望能够评论指出  3q

(更新中....)集合框架:List、Set、Map 区别  ;

                 集合数组的区别;

                 常用方法

一、集合框架

  • Collection接口:单列集合,用来存储一个个的对象

  1.  List接口:存储有序的、可重复的数据:ArrayList、LinkedList、Vector

  2.  set接口:存储无序的、不可重复的数据   :HashSet、LinkedHashSet、TreeSet

  3. map接口:key-value 键值对:HashMap、LinkedHashMap、TreeMap、Hashtable

1、面试题:ArrayList、LinkedList、Vector三者的异同?

答:相同:三个类是实现了List接口;存储数据的特点相同:存储有序的、可重复的数据;

不同点:

Collection接口:单列集合,用来存储一个个的对象

    a. List接口 :存储有序的、可重复的数据     -->"动态数组"

  1.          ArrayList:作为List接口的主要实现类,线程不安全,效率高;底层使用Object[] elementData存储;查询效率高

  2.          LinkedList:对于频繁的插入和删除操作,使用此类的效率高;底层使用双向链表存储

  3.          Vector:作为List接口的古老实现,线程安全、效率低;底层使用Object[] elementData存储

b. Set集合

Collection接口:单列集合,用来存储一个个的对象

set接口:存储无序的、不可重复的数据                

HashSet:作为set接口的主要实现类;线程不安全的;可以存储null值

LinkedHashSet:作为HashSet子类,遍历其内部数据时,可以按照添加的顺序遍历,对于频繁的遍历操作,  LinkedHashSet效率高于HashSet.

TreeSet:可以按照添加对象的指定属性进行排序

c. Map 集合

Map:双列数据,存储key-value对的数据 

HashMap:作为Map的主要实现类:线程不安全,效率高;存储null的key和value;

LinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历. 

TreeMap:保证按照添加的key-value对进行排序,实现排序遍历。此时考虑key的自然排序或者定制排序,底层使用红黑树;

Hashtable:作为古老的实现类:线程安全的,效率低;不能存储null的key和value; 

①List 与Set区别:

1、List:有序序列集合,按照我们放入元素的顺序排列,长度可变,可以通过索引下标获取

2、Set:无序集合,不能有重复元素,长度可变,只能迭代获取元素

Map:键-值对形式的集合,键不能重复,键可以为null值,有且只有一个null值,所有map的方法都是围绕键进行的

②数组集合区别:

数组:数组的使用具有局限性,存储的容量有限

集合:为了解决数组的局限性,引入了容器类的概念,动态变化容量,最常见的容器类就是ArrayList

补充:@SuppressWarnings 是什么含义 

①@SuppressWarnings(“rawtypes”)

SuppressWarnings压制警告,即去除警告 

rawtypes是说传参时也要传递带泛型的参数 

②@SuppressWarnings(“unchecked”) 

unchecked 执行了未检查的转换时的警告 

③@SuppressWarnings({“static-access”, “unchecked”}) 

指示应该在注释元素(以及包含在该注释元素中的所有程序元素)中取消显示指定的编译器警告。 

二、ArrayList进行存储(如图):ArrayList 实现了接口 List

 

 

三、集合框架常用方法

set方法说明:

toArray方法说明:

四、引入泛型 ---List为例

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值