Java集合

@TOCjava集合

Java集合框架

一.数组的缺陷:
1.一旦定义后,长度不可改变
2.数组中提供的方法十分有限,对于删除,插入,修改操作十分不便,而且效率不高
3.想要获取数组中元素实际长度的需求,数组中没有现成的属性和方法
4,数组中存储数据的特点:有序,可重复;对于无序,不可重复的需求不能满足
二.集合的应用场景:
1.无法预测存储数据的数量
2.同时存储具有一对一关系的数据
3.数据重复问题
集合框架图
(图片源自网络,侵删)
三.集合的概述
1.接口:
Collection:(单列集合)存储相同类型的数据
Map:(双列集合)key-value键值对形式存储

Collection接口:(数据是否可以重复性、有序性、是否存储null值)
List接口:数据可重复、保证有序性、可以存储null->ArrayList(线程不安全,效率高,底层使用Object[]存储)、LinkedList(对于频繁的插入,删除操作,使用此类比ArrayLIst效率高;底层使用双向链表存储)
Set:数据不重复、无法保证有序性、不可以存储null->HashSet(去重)、LinkedHashSet(去重、有序)、TreeSet(去重、有序(基于数据特征))
Queue:数据可以重复,保证有序(基于数据特征)、可以存储null:PriortyQueue(优先级队列) 堆
Map接口:
HashMap:key不能重复,key和value可以为null,线程不安全的,效率高
HashTable:key不能重复,key和value不能为null,线程安全的,效率低
LinkedHashMap:继承自HashMap,保证数据的有序性
TreeMap:保证数据的有序性
2.Collection中的常用方法:
add():给列表添加数据
size():获取列表中元素个数
get(index):获取指定位置处的元素
clear():清空集合元素
contains(Object obj):判断当前集合中是否包含obj
(会调用obj所在类的equals方法比较,自定义类默认equals方法相当于比较集合中数据和比较的对象是否是同一对象,因此需要在自定义类中重写equals方法,来比较集合中数据和对象的值是否相同)
remove(Object obj):移除集合中的obj元素(需重写equals方法)
removeall(Collection coll):从当前集合中移除coll集合中的所有元素,没有完全相同的元素,则取差集
toArray():将集合转变成数组
3.集合元素的遍历操作
(1) iterator迭代器:以统一的方法对集合元素进行遍历。

 Set set=new HashSet();
 set.add("blue");
 set.add("red");
 Iterator it=set.iterator();
 while(it.hasNext()){
 //next():a.指针下移 b.将下移以后集合位置上的元素返回
 System.out.println(it.next());
 }

注意:集合对象每次调用iterator()都会得到一个新的迭代器对象,默认游标都在集合第一个元素之前。
Iterator可以删除集合中的元素,通过迭代器对象的remove方法,不是集合对象的remove方法,remove()伴随着next()。
(2)foreach(集合元素的类型 局部变量:集合变量)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值