集合

集合:Java API所提供的一系列类的实例,可以用于动态存放多个对象。

特点:长度不固定,只能存储引用类型的对象(即数组、类、接口、枚举)

今天主要总结一下Collection集合

数组和集合的区别:

A:长度区别
  数组长度固定
  集合长度可变

B:内容区别
  数组可以是基本类型,也可以是引用类型
  集合只能是引用类型
C:元素内容
  数组只能存储同一种类型
  集合可以存储不同类型(其实集合一般存储的也是同一种类型)


1)Collection接口中定义了一些集合常用的方法:

2)Collection集合常用的两个子接口:List和Set

List集合及其实现类:

List接口存储一组不唯一(对象可重复),有序(按照添加次序放置元素,不会重新排序)的对象。

List集合中的元素都对应一个整数型的序号记载其在集合中的位置,可以根据序号存取集合中的元素。

JDK API所提供的List集合的实现类常用的有:ArrayList,LinkedList

List接口在Collection集合接口方法的基础上又新增了一些实用的方法:

public Object get(int index):返回列表中的元素数

public Object add(int index,Object Element):在列表的指定位置插入指定元素,将当前处于该位置的元素(如果有的话)和所有后续元素向右移动。

public Object set(int index,Object Element):用指定元素替换列表中指定位置的元素

public Object remove(int index):移除列表中指定位置的元素

public ListIterator listIterator():返回此列表元素的列表迭代器。

ArrayList(线程不安全)是使用数组结构实现的List集合。

优点:对于使用索引取出元素有较高的效率(它使用索引快速定位对象)

缺点:元素做删除或插入速度较慢(因为使用了数组,需要移动后面的元素以调整索引顺序

LinkedList(线程安全)是使用双向链表实现的集合

优点:对于频繁地插入或删除元素有较高的效率

缺点:查询元素时,效率低,因为要从第一个元素开始查找。

那么通过ArrayList和LinkedList各自的优缺点我们很容易就可以看出他们分别在何时使用吧吐舌头

List集合及其实现类

1.Set接口存储一组唯一(对象不可重复)的对象。

JDK API中所提供的Set集合常用的方法有HashSet、TreeSet

HashSet的存储原理:根据每个对象的哈希码值(调用hashCode()获得)用固定的算法算出它的存储索引,把对象存放在一个叫散列表的相应位置中。(注意:如果对应的位置没有其他元素,就只需要直接存入。否则会将新对象跟该位置的所有对象进行比较(调用equals()方法)以查看是否已经存在该对象,如果不存在就存放,否则就不存储)

注意:

1)HashSet不保存元素的加入顺序

2)HashSet存、取、删对象都有很高的效率

3)对于要存放到HashSet集合中的对象,对应的类可以重写hashCode(Object obj)方法和equals()方法以实现对象相等的规则

2.TreeSet:可以对加入其中的元素进行排序,但前提是必须指定排序规则

注意:如果使用TreeSet的无参构造实例化TreeSet集合,则加入到TreeSet集合中的元素所对应的类必须实现java.lang.Comparable<T>接口,复写其中的int compareTo(T o)方法,并在方法中编写排序规则

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值