数组和集合

数组:可以存放多个同一类型的数据,如果存放的是对象类型则存放的是对象的引用,需要实例化。缺点是数组大小在定义时必须先指定并且无法改变

 

集合:不能存放基本类型数据,只能存放引用类型对象,包括List、Set、Map、Queue、Properties等

List:以线性方式存储元素,允许存放重复对象,包括ArrayList、LinkedList

ArrayList:代表长度可变的数组,允许对元素进行随机快速访问但是插入和删除元素的速度较慢

LinkedList:采用链表数据结构,对顺序访问进行了优化,插入和删除元素较快但随机访问速度较慢。独有方法使得LinkedList可以作为堆栈、队列和双向队列使用

 

Set:集合中的对象不按特定方式存储,并且没有重复对象(根据equals方法判断),包括HashSet、LinkedHashSet、TreeSet

HashSet:按照哈希算法存取集合中的对象,无序,存取速度快,当向集合中加入一个对象时会调用对象的hashCode()方法来获得哈希码,然后根据这个哈希码进一步计算出对象在集合中的存放位置。同一个对象的哈希码也肯定相同。如果覆盖了对象的equals()方法必须同时覆盖hashCode()方法否则HashSet无法正常工作,如果equals()方法比较不相等应尽量保证对象拥有不同的哈希码,减少哈希冲突,提高性能

LinkedHashSet:HashSet的子类,不仅实现了哈希算法还实现了链表数据结构,有序,能够提高插入和删除元素的性能

TreeSet:实现了SortedSet接口,支持自然排序(默认升序)和客户化排序功能,当程序修改后TreeSet不会重新排序

         自然排序--->参与排序的对象必须为同一类型并且都实现Comparable接口,通过实现compareTo方法完成排序。返回0表示两者相等,返回值>0表示前者大于后者,返回值<0表示后者大于前者

         客户化排序--->调用实现Comparator接口的比较器(实现compare方法,返回0表示两者相等,返回值>0表示前者大于后者,返回值<0表示后者大于前者)为参数的构造方法创建TreeSet对象

 

Map:Map映射是一种把键对象和值对象映射的集合,他的每一个元素都包含一对键对象和值对象,而值对象仍然可以是Map类型。元素键对象key不能重复,对于值对象value没有唯一性要求,可以将任意多个键对象映射到同一个值对象上。包括:HashMap、LinkedHashMap、TreeMap

HashMap:按照哈希算法来存取集合的键对象,无序,存取速度快。为了保证HashMap正常工作要求两个对象equals方法相等时hashCode方法返回的哈希码也一样

LinkedHashMap:HashMap的子类,有序,不仅实现了哈希算法还实现了链表数据结构

TreeMap:实现了SortMap接口,支持对键对象进行自然排序(默认)和客户化排序功能

Queue:队列,包括Queue单向队列和Deque双向队列接口

Queue:特点是向末尾添加元素,从队列头部删除元素,队列中允许有重复元素

Deque:特点是队列的头部和末尾都可以添加和删除元素

Properties:一种特殊的Map类,集合中每个元素包含一对键值,采用同步机制会影响操纵集合性能,load方法可以用来从输入流中读取键值






 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值