Java集合详解

集合(容器)
在实际应用中无法确定数据数量,这些数据不适合使用数组来保存,这时候就需要使用集合。Java的集合就像一个容器,用来存储Java类对象。
Java的所有集合类都位于java.util包,其中提供了一个表示和操作对象集合的统一架构,包含大量集合接口,以及这些接口的实现类和操作它们的算法。一个集合是一个对象,但它表示一组对象,Java集合中实际存放的是对象的引用值,不能存放基本数据类型值。
集合中的接口
collection接口:该接口是最基本的集合接口,一个collection代表一个对象
list接口:该接口实现了collection接口。List是有序集合,允许有相同的元素。使用list能够精确控制每个元素插入的位置,用户能够使用索引来访问list中的元素,与数组类似。
Set接口:该接口实现了collection接口。它不能包含重复的元素,sortedset是按升序排序的set集合
Map接口:包含键值对,Map不能包含重复的键。SortedMap是一个按升序排序的Map集合。
接口实现类
List接口的常用类有ArrayList和LinkedList
Set接口的常用类有hashset和treeset
treeset类同时实现了set接口和sortedset接口
Map映射的类是hashmap,可实现一个键到值的映射
Sortedmap接口的类是treemap
List集合
Arraylist类提供了快速的基于索引的成员访问方式,对尾部成员的增加和删除支持较好。不过,向Arraylist中插入与删除元素的速度相对较慢。该类的常用构造方法有两种重载形式。

  1. Arraylist()构造一个初始容量为10的空列表。
  2. ArrayList(Collection<?extends E> c):构造一个包含指定Collection的元素的列表,这些元素是按照该Collection的迭代器返回它们的顺序排序的
    LinkedList类采用链表结构保存对象,这种结构的优点是便于向集合中插入或者删除元素,但其访问元素的速度较慢。
    Set集合
    HashSet类
    HashSet类是按照哈希算法来存储集合中的元素,使用哈希算法可以提高集合与元素的存储速度,当向set集合添加一个元素时,hashlist会调用该元素的hashcode()方法获取其哈希码,然后根据这个哈希码计算该元素在集合中的存储位置。其常见的2种构造方法重载形式:
    HashSet():构造一个新的空的set集合
    HashSet(Collection<?extends E> c):构造一个指定collection集合元素的新的set集合。其中,“<>”中的extends表示hashset的父类,即指明该set集合中存放的集合元素类型,c表示其中的元素将被存放在此set集合中。
    例如:
  3. HashSet hs=new HashSet();
  4. HashSet hs=new HashSet();
    2中的是Java的泛型,用于指定集合(hs)中的元素的数据类型。
    TreeSet类
    TreeSet接口可以实现对集合的升序排序,TreeSet只能对实现了Comparable接口的类进行排序,因为comparable接口中有一个compareTo(Object o)方法用于比较两个对象的大小。
    Map是一种键-值对(key-value)集合,map集合中的每一个元素都包含一个键对象和一个值对象。其中,键对象不允许重复,值对象可以重复,并且值对象还可以是map类型的。
    Map接口主要有两个实现类:HashMap类和TreeMap类。其中HashMap类按哈希算法来存储键对象,而TreeMap类可以对键对象进行排序。
    Collections类
    Collections类提供了许多操作集合的静态方法,借助这些静态方法可以实现集合元素的排序、填充和复制等操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值