Java集合有关的问题

Java集合的介绍
一、思维导图(其中没有包含Queue,它也是Collection下的子接口)
在这里插入图片描述
二、Iterable接口
Java集合类的基本接口是Collection接口。而Collection接口必须继承java.lang.Iterable接口。
1.实现iterable接口的类可以增强for循环(相当于我们说的foreach)
2.实现iterable接口的集合类必须提供一个名为iterator()的方法,该方法的返回值为iterator

常用方法
hasNext():是否存在下一项
Next():获取下一项
Remove():该方法可以删除由next()最新返回的项(注意:此后不能调用remove,直到对next再一次调用以后)

三、Collection接口
1.Collection的remove(object)方法和iterable中的remove()的区别?
(1)性能方面(iterator效率高)
Collection的remove方法需从集合一个一个遍历才能找到对象删除
iterator的remove方法是结合next()方法,可每隔一项删除一项,效率高
(2)容错方面(iterator效率高)
使用iterator遍历时,如果使用Collection的remove则会报异常,会出现ConcurrentModificationException,因为集合中对象的个数会改变而Iterator 内部对象的个数不会,不一致则会出现该异常
在使用Iterator遍历时,不会报错,因为iterator内部的对象个数和原来集合中对象的个数会保持一致

四、List集合
1.特点:有序,元素可重复
2.ArrayList和Linedklist的区别
(1)存储数据
ArrayList存储数据是以数组形式存储
Linkedlist存储数据是以链表形式存储

(2)使用数据
ArrayList是查询较快
LinkedList是增删快
五、Set集合
1.特点:无序,元素不可重复
2.HashSet、TreeSet、LinkedHashSet的区别?
①.需要速度快的集合,使用HashSet
②.需要集合有排序功能,使用TreeSet
③.需要按照插入的顺序存储集合,使用LinkedHashSet

六、Queue接口
1.特点:先进先出,禁止添加null(LinkedList不禁止)
2.补充(Android端)属于半成品哈哈
在这里插入图片描述
七、Map集合
1.特点:无序,键不可重复,值可重复
2.HashMap、TreeMap、linkedHashMap的区别?
①.在Map中插入、删除和定位元素,HashMap是最好的选择
②.需要集合有排序功能,使用TreeMap更好
③.需要按照插入的顺序存储集合,使用LinkedHashMap

3.HashMap的原理
通过put和get存储和获取对象,存储对象时,我们将K/V传给put方法时,它调用hashcode计算hash从而得到bucket位置,进一步存储,HashMap会根据当前bucket的占用情况自动调整容量。获取对象时,我们将K传递给get,他调用hashcode计算hash从而得到bucket位置,并进一步调用equals()方法确认键值对。

八、Arrays类

1.声明数组的几种方式
1.int[ ] arr = new int[长度];
2.int[] arr = {1,2,4,5};//同时初始化了
3.int[] arr = new int[]{1,2,3,6,8};// 注意后面new int[] -------这个【】里面可以不写;

2.Arrays和ArrayList的区别?
①.ArrayList是Array的复杂版本
②.存储的数据类型:Array只能存储相同数据类型的数据,而ArrayList可以存储不同数据类型的数据
③.长度的可变:Array的长度是固定的,而ArrayList的长度是可变的

3.将数组转成list
Arrays.asList(数组)
4.将list转数组
list.toArray()
九、Collections工具类
1.Collection和Collections的区别?
Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法.
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。

2.常用方法总结
1.sort(Collection)方法的使用(含义:对集合进行排序)。
2.shuffle(Collection)方法的使用(含义:对集合进行随机排序)。
3.reverse()方法的使用(含义:反转集合中元素的顺序)。
4.replaceAll(List list,Object old,Object new) 方法的使用(含义:替换批定元素为某元素,若要替换的值存在刚返回true,反之返回false)。
5.rotate(List list,int m)方法的使用(含义:集合中的元素向后移m个位置,在后面被遮盖的元素循环到前面来)。
6.copy(List m,List n)方法的使用(含义:将集合n中的元素全部复制到m中,并且覆盖相应索引的元素)。
7.binarySearch(Collection,Object)方法的使用(含义:查找指定集合中的元素,返回所查找元素的索引)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值