集合2

Set

常用实现类:
HashSet
LinkedHashSet
TreeSet

Set是无序不可重复的:无序就是不是你加入数据时的顺序,所以不能通过下标取某个元素;不可重复就是你追加进去的元素不能是相同的,元素相同时,新元素就无法加入。

Set集合的遍历方式有两种!

//方式一:通过增强for循环

for(Object obj:set){
	System.out.println(set);
}

//方式二:通过迭代器

Interator it =set.iterator();
	while(it.hasNext()){
		Object obj=it.next();
		System.out.println(obj);
	}

Set集合可以指定泛型:Set set=new Hashset();

Set判断元素相同的依据是什么?

加入一个元素时,和集合中的每一个元素对比。
先调用对象的hashCode方法。
如果hash值不相同,再调用equals方法,判断两个对象的属性是否完全相同,如果返回true,则相同,返回false,则不相同。

LinkedHashSet&TreeSet

LinkedHashSet是一个具有预知迭代顺序的无序集合。
TreeSet是一个具有排序功能的,TreeSet中的元素必须排序,不排序不行。默认情况下排序的依据是对象所在的类是否实现Comparable接口(内部比较器)。

内部比较器:p1.compareTo(p2);自然排序
外部比较器:com.compare(p1,p2);定制排序
两个都用,会使用定制排序。

优先选择谁?
优先选择内部比较器。如果内部比较器不能用,再用外部比较器。

List

List是可重复的,就是List可以加入相同的元素。List通过下标取出来相应的元素,下标从0开始;删除的时候一次只能删一个,并且是从最前面开始删除。

List判断元素相同的依据是equals

Stack栈
先进后出
弹出栈顶元素,没有时出异常

Queue队列
先进先出
取出队中元素,没有为null

Map

Map键值对(Key-value)
Maps是一个接口,但它不是Collection的子接口

常用实现类:
HashMap
LinkedHashMap
TreeMap

它们什么关系?
Map的键和值都可以是任意类型Hashmap的键值对之间是无序的。

entry是map中的一个键值对。

map的遍历用增强for循环。

LinkedHashMap:键值对之间的顺序是添加时的顺序。

数组和集合的区别

1.数组的长度是固定的,集合可随意删除,增加。
2.集合只能存储引用类型;数组可以存储引用类型和基本类型。
3.集合方法比较多。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值