java中的常用的集合有_JAVA常用集合

昨天学习完了集合,趁今天休息总结一下集合的体系和用法.

一,集合体系

5df74d06e77d8f49305885ef62fd6ce2.png

1.1体系概述

在java集合中分为两大块儿,Collection接口和Map接口.

其中Collection有两个子类接口List和Set,其最大的区别在于List中元素可重复,有索引.而Set的元素不可重复.没有索引.

其中Map接口是有直接实现类,为映射关系.

1.2Collection和Map的区别

Collection:    单列集合  有的有索引(LIst)  有的没索引(Set)

有集合允许重复(List),有集合不允许重复(Set)

有序的(List,LinkedHashSet),无序的(HashSet)

有专用的遍历迭代器

Map集合:    双列集合    有K 和 V 组成元素    K不允许重复

K和v允许存储null.K只能存储一次null;

遍历采用keySet方法或者entrySet方法

二.Collection接口

2.1Collection概述

是单列集合的顶层接口.JDK不提供此接口的直接实现,提供风具体的子接口

常用方法: add remove clear contains isEmpty   size

遍历: 迭代器 iterarot

1 Iterator it = c.iterator(); //创建迭代器对象,通过对象调用迭代器方法

2 while(it.hasNext()) {3 String s =it.next();4 System.out.println(s);5 }

2.2数据结构的简单特点

栈         先进后出

队列    数据先进先出

数组     查询快    增删慢

链表     增删快  查询慢

单向列表(无序)    双向列表(有序)

哈希表    查询增删都快

2.3List接口

2.3.1概述

特点:  索引  有序  可重复

特有方法:add  remove  set  get

并发修改异常:  原因:  修改集合的次数和迭代器的预期的次数不一致

例如,在迭代器中添加了一个元素.

解决方法:采用for循环  或者使用Listiterator(用得少)

2.3.2List接口实现类

ArrayList集合:  底层结构数组  查询快 增删慢

LinkedList集合:  底层链表  增删快  查询慢

特有头尾方法: addFirst/Last  get~   remove~

2.4Set接口

2.4.1概述

特点:  没有重复元素  没有带索引的方法

哈希值:  一个计算出来的int值  hashCode();

2.4.2set接口实现类

HashSet集合  底层哈希表(数组+链表+红黑树)

元素唯一性实现:

1.根据对象的哈希值计算储存位置

如果当前位置没有元素则直接存入

如果当前位置有元素,则第二步

2.当前元素的元素和已存在的元素比较哈希值

如果哈希值不同,则将当前元素进行储存

如果哈希值相同,则进行第三步

3.通过equals()方法比较两个元素的内容

如果内容不相同,则将当前元素进行储存

如果内容相同,则不储存当前元素

LinkedHashSet集合  底层哈希表和链表实现  有可预测的迭代次序

TreeSet集合  指定规则有序  自然比较Comparable  比较器比较Comparator

比较某对象时,需要重写Comparator方法

三,Map集合

3.1概述

Interface Map K:键的类型  V:值的类型

将键映射到值的对象;不能包含重复的键;每个键映射最多一个值

3.2常用功能

put  remove  clear  containsKey  containsValue  isEmpty  size

3.3获取功能

get(key)  keySet  Values  entrySet

3.4遍历

3.4.1keySet方法

Set ss = map.keySet(); //创建key集合

for (String s : ss) { //遍历key集合

System.out.println(s + " " + map.get(s)); //调用方法

}

3.4.2entrySet方法

Set ss = map.keySet(); //创建key集合

for (String s : ss) { //遍历key集合

System.out.println(s + " " + map.get(s)); //调用方法

}

3.5嵌套集合

添加集合从里向外

遍历集合从外向里

四.Collections集合工具类

4.1工具类

sort  升序排列

reverse  反转

shuffle  随机

4.2储存对象并排序的时候  需要sort(array, new Comparator)就是重写Comparator方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值