容器(集合)详解

集合与数组之间的联系与区别

同:都是用来存储数据的,部分集合底层是数组实现的
异:数组一旦确定就不可以更改长度,且存储数据类型必须一致;集合可以根据需求进行扩容,以及存储不同类型的数据

集合分为Collection和Map两大类
Collection
Collection集合内中的元素都是无序的,所以不能通过索引进行查找

add(元素)	//添加元素
addAll(集合)	//将Collection集合中的元素全部添加
clear()	//移除所有元素
contains(元素)	//	判断是否含有这个元素
isEmpty()	//	不含元素返回true
iterator()	//返回此集合迭代器
remove(元素)	//移除单个元素
size()	//返回元素个数
toArray()	//返回Collection的Object数组

Collection集合遍历

1.for
2.foreach
3.使用迭代器 col.iterator
4.使用toArray,返回Object数组进行遍历

Collection-List
有序的Collection(序列),此接口的用户可以根据索引对每个元素的插入进行精确的控制,可以根据索引进行访问

get(index)	//获取该索引的值
indexOf(元素)	//获取该元素的索引
subList(开始,结束)	//截取,包括开始,不包括结尾
set(index,元素)	//根据索引修改元素
listIterator()	//返回List的迭代器

ArrayList
List子接口,底层数组实现,可以使用多态,使用父接口的方法
初始容量为10,自动扩容点为0.5
LinkedList
List子接口,底层双向链表实现,存在新增方法

addFirst(元素)	//在首部拆入元素
addLast(元素)	//在尾部插入元素
getFirst()	//获取第一个元素
getLast()	//获取最后一个元素
indexOf(元素)	//返回第一次出现的索引
lastIndexOf(元素)	//返回最后一次出现的索引
remove(index)	//移除索引的元素

List集合遍历

1.for
2.foreach
3.使用迭代器 s.iterator
4.使用toArray,返回Object数组进行遍历

Collection-Set
一个不包含重复元素的Collection,集合中只能存在一个null值
无新增方法,直接使用父类中的方法
Set-HashSet
初始容量为16,加载因子0.75
无新增方法,直接使用父类中的方法
他的底层是HashMap实现的,由数组,链表和红黑树构成
Set-TreeSet
按照默认升序排序,当你需要插入元素是,需要内部需要实现Comparable接口,或者创建外部Comparator排序

Set set=new TreeSet(Collection集合,外部比较器)

Set遍历

1.foreach
2.使用迭代器 s.iterator

Map集合
继承Dictionary
以键值对的形式存在,键唯一不可重复,值可以重复,如果加入相同的键,值会覆盖
Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容

put(key,value)	//插入数据
containsKey(key)	//判断是否含有key值
containsValue(value)	//判断是否含有value值
get(key),返回素对应的值,没有则返回null
entrySet()	//返回Set映射 key-value 视图,常用来进行遍历
values()	//返回Collection的映射中的 value 视图  ,常用来进行遍历	
keySet()	//返回此映射中包 key 视图 ,常用来遍历

HashMap
基于哈希表实现。使用HashMap要求添加的键类明确定义了hashCode()和equals()[可以重写hashCode()和equals()],为了优化HashMap空间的使用,您可以调优初始容量和负载因子,HashMap(): 构建一个空的哈希映像
适用于Map中插入,删除,定位元素

TreeMap
基于红黑树,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。

Map集合遍历

1.使用keySet进行遍历(key遍历)
Set<String> set=map.keySet();
Iterator<String> it=set.iteratr();
while( it.hasNext()){
System.out.println( it,next() )
}
2.使用values映射Collection(value遍历)
Collection col =map.values;
Iterator it = col.iterator();
while( it.hasNext()){
System.out.println( it,next() )
}
3.使用entrySet遍历(key-value遍历)
Set<Map.Entry<String,Integer>> entrys=map.entrySet();
Iterator<Map.Entry<String,Integer>> it=entrys.iterator();
while( it.haoNext()){
Map.Entry<String,Integer> entry=it.next();
	System.out.println(entry.getKey()    entry.getValue())
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值