集合

集合

集合是(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。
然后集合常用的有三种List,set,map

1,list(有序、可重复)

	List里存放的对象是有序的,同时也是可以重复的,List关注的是索引,拥有一系列和索引相关的方法,查询速度快。因为往list集		合里插	入或删除数据时,会伴随着后面数据的移动,所有插入删除数据速度慢
其中有ArrayList,LinkdList,还有遍历。
1}ArrayList

ArrayList是基于数组的,在初始化ArrayList时,会构建空数组(Object[] elementData={})。ArrayList是一个 无序 的,它是按照添加的先后顺序排列,当然,他也提供了sort方法,如果需要对ArrayList进行排序,只需要 调用这个方法,提供Comparator比较器即可
2}LinkedList
   LinkedList是基于链表的,它是一个双向链表,每个节点维护了一个prev和next指针。同时对于这个链表,维护 了 first和last指针,first指向第一个元素,last指向最后一个元素。LinkedList是一个无序的链表,按照插入的 先后顺序 排序,不提供sort方法对内部元素排序。
3}遍历
在类集中提供了以下四种的常见输出方式:
1)Iterator:迭代输出,是使用最多的输出方式。
2)ListIterator:是Iterator的子接口,专门用于输出List中的内容。
3)foreach输出:JDK1.5之后提供的新功能,可以输出数组或集合。
4)for循环

2,**Set**(无序、不能重复)

	Set里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中。
	HashSet

HashSet是基于HashMap来实现的,操作很简单,更像是对HashMap做了一次“封装”,而且只使用了 HashMap的
   key来实现各种特性,而HashMap的value始终都是PRESENT。
   HashSet不允许重复(HashMap的key不允许重复,如果出现重复就覆盖),允许null值,非线程安全。
  3Map(键值对、键唯一、值不唯一)
   Map集合中存储的是键值对,键不能重复,值可以重复。根据键得到值,对map集合遍历时先得到键的set集合, 对 set集合进行遍历,得到相应的值。
HashMap
   数组方式存储key/value,线程非安全,允许null作为key和value,key不可以重复,value允许重复,不保证元 素迭代顺序是按照插入时的顺序,key的hash值是先计算key的hashcode值,然后再进行计算,每次容量扩容 会重新计算所以key的hash值,会消耗资源,要求key必须重写equals和hashcode方法
    默认初始容量16,加载因子0.75,扩容为旧容量乘2,查找元素快,如果key一样则比较value,如果value不一 样,则按照链表结构存储value,就是一个key后面有多个value;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值