2024年最新Surpass Day21——Java 集合(1),阿里java社招面试

最后

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

一类是单个方式存储元素,这一类集合中超级父接口:java.utill.Collection;

一类是以键值对的方式存储元素,这一类元素中超级父类接口是:java.utill.Map;

2.1 超级父接口Collection


L i s t

2.2 超级父接口Map


2.3 总结


ArrayList:底层是数组

LinkedList:底层是双向链表

Vector:底层是数组,线程安全的,效率较低,使用较少

HashSet:底层是HashMap,放到HashSet集合中的元素等同于放到HashMap集合key部分了

TreeSet:底层是TreeMap,放到TreeSet集合中的元素等同于放到HashMap集合key部分了

HashMap:底层是哈希表

Hashtable:底层也是哈希表,只不过线程安全的,效率较低,使用较少

Properties:是线程安全的,并且key和value只能存储字符串String

TreeMap:底层是二叉树,可以自动按照大小顺序排序

List集合存储元素的特点:

有序:存进去和取出来的顺序相同,每一个元素都有下标

可重复:存进去1,还可以存储1

Set集合存储元素的特点

无序:存进去和取出来的顺序不一定相同,元素没有下标

不可重复:存进去1,不可以再存储1

SortedSet集合存储元素特点: 无序不可重复的,

元素可排序:可以按照大小顺序排列

Map集合的特点

Map集合的key,就是一个Set集合

往Set集合中放数据,实际上放到了Map集合的key部分

3、Collection接口

==============

3.1 Collection存放的元素类型


没有使用“泛型”之前Collection可以存储Object的所有子类型

使用“泛型”之后,Collection只能存储某个具体的类型

(集合中不能直接存储基本数据类型,也不能存储java对象,存储的是java对象的内存地址)

3.2 Collection的常用方法


1)boolean add(Object e)向集合中添加元素

//多态机制,接口是抽象的,无法实例化

Collection c = new ArrayList();

//测试Collection接口中的常用方法

c.add(1200);//自动装箱,实际上是放进去一个对象的内存地址。Integer c = new Integer(1200);

c.add(3.14);//自动装箱

c.add(new Object());

c.add(new Student());

c.dd(true);//自动装箱

System.out.println(“集合中的元素个数是:” + c.size());//5

2)int size()获取集合中的元素的个数

3)void clear()清理集合

4)boolean contains(Object o)判断当前集合中是否包含元素o,包含返回ture,不包含返回false;

c.add(“绿巨人”);

System.out.println(c.contains(“绿巨人”));

5)boolean remove(Object o)删除集合中的某个元素

c.remove(“绿巨人”);

6)boolean isEmpty()判断该集合中元素中的个数是否为0

c.clear();

System.out.println(c.isEmpty());//true

7)*Object[ ] toArray()集合转换成数组

c.add(1200);

c.add(3.14);

c.add(“12345”);

//转换成数组

Object[] objs = c.toArray();

for(int i = 0 ; i<objs.length ; i++){

//遍历数组

object o = objs[i];

System.out.println(o);//调用toString方法

}

4、集合遍历/迭代

=========

4.1 如何遍历集合


迭代方法是Collection通用的一种方法,在Map集合中不能用。在所有的Collection以及子类当中使用

//创建集合对象

Collection c = new ArrayList();

//添加元素

c.add(“abc”);

c.add(“def”);

c.add(100);

c.add(new Object());

//对集合Collection进行遍历/迭代

//第一步:获取集合对象的迭代器对象Iterator

Iterator it = c.iterator();//、、、、、、、、、、、、、、c调用iterator()拿到迭代器,迭代器是个对象,其中对象有两个方法

//第二步:通过以上获取的迭代器对象开始迭代/遍历集合

/*

以下两个方法是迭代器对象Iterator中的方法:

boolean hasNext()如果仍有元素可以迭代,则返回ture。

Object next() 返回迭代的下一个元素。

*/

while(it.hasNext()){

Object obj = it.next();

System.out.println(obj);

}

Collection c = new ArrayList();

//添加元素

c.add(1);//自动装箱成Integer类型

c.add(2);

c.add(3);

c.add(4);

//迭代集合

Iterator it = c.Iterator();

while(it.hasNext()){

//存进去什么类型,取出来还是什么类型

Object obj = it.next();

if(obj instanceof Integer){

System.out.println(“Integer类型”);//这里调用toString方法转换成了字符串

}

}

4.2 迭代器是通用的


笔者福利

以下是小编自己针对马上即将到来的金九银十准备的一套“面试宝典”,不管是技术还是HR的问题都有针对性的回答。

有了这个,面试踩雷?不存在的!

回馈粉丝,诚意满满!!!




本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

回馈粉丝,诚意满满!!!

[外链图片转存中…(img-RRIfwgF7-1715227363340)]
[外链图片转存中…(img-n8Mxemfq-1715227363341)]
[外链图片转存中…(img-YkwKH5Qd-1715227363342)]
[外链图片转存中…(img-1kFQ9rJM-1715227363342)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值