java高级——集合list Set Queue Stack Map、泛型

集合只能存放包装类
set可以去重,是一个无序的集合
TreeSet只能存放单一数据类型,自然排序
Collection 超类 是除了Object类的最终的父类
ArrayList类是一个有序列表,可以存放任意类型的数据,数据不能是基本数据类型,
会自动转换为包装类,不会去重,取出来的还是该顺序
TreeSet是一个无序列表,即存放进去的顺序跟拿出来的顺序不一致,会自动排序,
从小到大自然排序,自动去重
Map容器用put来存放数据 key value键值对
key不能重复,如果重复后面会覆盖前面
map可以通过get(key)来获取value

set不能通过for循环来遍历,因为自动去重后存取顺序不一致,没有下标,所以只能通过
迭代器去遍历

遍历方法:
// 1.获取key,通过key找value

Set keySet = map.keySet();
		Iterator iterator = keySet.iterator();
		while(iterator.hasNext())
		{
			Object key = iterator.next();
			System.out.println(key);
			System.out.println(map.get(key));
		}

// 2.获取Entry对象,Entry封装了key+value

Set entrySet = map.entrySet();
		Iterator iterator2 = entrySet.iterator();
		while(iterator2.hasNext())
		{
			Entry e=(Entry)iterator2.next();
			System.out.println(e.getKey());
			System.out.println(e.getValue());
		}

// 3.获取枚举器

Enumeration elements=((Hashtable) map).keys();
		while(elements.hasMoreElements())
		{
			Object key = elements.nextElement();
			System.out.println(key);
			System.out.println(map.get(key));
		}

LinkedHashMap 不排序
HashMap 排序 非线程安全
HashTable 枚举器 线程安全

List 线程安全 :Vector ; 非线程安全: ArrayList、 LinedList
Set 线程安全 : ConcurrentSkipListSet; 非线程安全: 其他都是非线程安全
Map 线程安全 :hashtable ; 非线程安全:hashmap

ArrayList 线性表 查找速度快
LinkedList 链表 插入删除的速度快

Collection是List和set,Queue的祖宗接口,存放任意类型的数据,只能存放一个数据
List
特性 有序,可以重复
ArrayList 线性表 查找速度快 非线程安全
LinkedList 链表 插入和删除速度快 非线程安全
Vector 向量 线程安全
遍历可以用 for循环 迭代器
Set
无序 不重复
TreeSet 自动排序 原则是自然排序 只能排单一数据类型
HashSet 自动排序 原则是通过hashSet方法算出来一个数值
LinkedHashSet 可以去重 不会排序 原始顺序
ConcurrentSkipListSet 和TreeSet是一样的 只不过它是线程安全
遍历只能用迭代器
Queue
队列
先进先出
Stack

后进先出
Map
是祖宗接口,存放任意类型的数据,必须存放key和value
hashmap:
key+value 非线程安全
hashtable :
线程安全 多一个枚举器

泛型
在类的后面加<>
<>里面可以用任何字母来表示,一般用大写字母E或T
替代当前类中的数据类型,表示任何数据类型
在定义的时候不给类型,在使用的时候才给类型
在给定类型时,不允许出现基本数据类型
1.可以减少代码量
2.解决安全性问题,主要用在集合中,增加代码的安全性
一旦集合增加了泛型,就只能存放泛型类型的数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值