Java-容器集合

当当当当~~~~欢迎大家阅读,接下来我们一起学习容器集合知识点

 


一、常用集合类体系结构

二、什么是集合 

提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变。

三、Collection(单列集合)(接口)

(一)Collection(单列集合)

(1)Collection集合概念:

       是单列集合的顶层接口,它表示一组对象,这些对象也称为collection的元素,Jdk不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现。

(2)Collection集合的常用方法

(3)Collection集合的遍历(用迭代器方式遍历集合,集合特有的遍历方式)

       Iterator<E>iterator( ):返回此集合中元素的迭代器,通过集合的iterator( )方法得到(多态),所以我们说它是依赖于集合而存在的。

(二)List(单列集合中的可重复集合)(接口)

(1)List集合概念:

       有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素,与Set集合不同,列表通常允许重复的元素

(2)List集合的特有方法

(3)List集合的遍历方法(用for循环方式遍历集合,带索引的遍历方式)

用for循环改进(size和get方法的结合)获取集合元素方式的遍历

(4)List集合的特有迭代器Listlterator( )遍历

(4.1)概念

       用于允许程序员沿任一方向遍历列表的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置,通过List集合的Listlterator( )方法得到,所以说它是List集合特有的迭代器。
(4.2)Listlterator( )的常用方法

(5) List集合子类特点

(5.1)底层数据结构

ArrayList:底层数据结构是数组,查询快,增删慢

LinkedList:底层数据结构是链表,查询慢,增删快

(5.2)LinkedList集合的特有功能

(三)Set(单列集合中的不可重复集合)(接口)

(1)Set集合概述:

不包含重复元素的集合,没有带索引的方法,所以不能使用普通for循环遍历

(2)哈希值

概念:是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值

方法:public int hashCode( ):返回对象的哈希码值

对象的哈希值特点:同一个对象多次调用hashCode( )方法返回的哈希值是相同的,默认情况下,不同对象的哈希值是不相同的。通过方法重写,可以实现不同对象的哈希值是相同的

(3)HashSet集合

底层数据结构是哈希表。

对集合的迭代顺序不做任何保证,也就是说不保证存储和取出的元素顺序一致。

没有带索引的方法,所以不能使用普通for循环遍历。

由于是Set集合,所以是不包含重复元素的集合。

(4)TreeSet集合概述和特点

元素有序 ,这里的顺序不是指存储和取出的顺序,而是按照一定的规则进行排序,具体排序方法取决于构造方法。

没有带索引的方法,所以不能使用普通for循环遍历。

由于是Set集合,所以不包含重复元素的集合。

(5)排序方法

自然排序Comparable的使用

public class Student implements Comparable<Student> {     
 @Override
    public int compareTo(Student s) {
        int num=this.age-s.age;
        int num2=num==0?this.name.compareTo(s.name):num;
        return num2;
    }
}

比较器排序Comparator的使用

//创建集合对象
 TreeSet<Student> ts=new TreeSet<Student>(new Comparator<Student>() {
 @Override
 public int compare(Student s1, Student s2) {
  int num=s1.getAge()-s2.getAge();
  int num2=num==0?s1.getName().compareTo(s2.getName()):num;
  return num2;
}

四、Map(双列集合)(接口)

(一)Map(双列集合)

(1)Map集合格式

Interface Map<K,V> K:键的类型;V:值的类型

(2)Map集合添加对象的方式

V put(K key, V value)将指定的值与该映射中的指定键相关联,

当put第一次出现时为添加方法,当值重复时为修改方法。

(3)Map集合的基本功能

(4)Map集合的获取功能

(5)Map集合的遍历

方式一:
    获取所有键的集合。用keySet( )方法实现
        Set<String>keySet=map.keySet( )
    遍历键的集合,获取到每一个键。用增强for实现
        for(String key:keySet){ }
    根据键去找值。用get(Object key)方法实现
        String value=map.get(key)

方式二:
    获取所有键值对对象的集合
        Set<Map.Entry<K,V>>entrySet( ):获取所有键值对对象的集合
    遍历键值对对象的集合,得到每一个键值对对象
        用增强for实现,得到每一个Map.Entry
    根据键值对对象获取键和值
        用getKey( )得到键,用getValue( )得到值 

五、Collections

Collection是接口,Collections是实现类

 常用方法:
 1:   public static<T extends Comparable<? super T>>void sort(List<T>list):
        将指定的列表按升序排序
  2:  public static void reverse(List<?>list)
        反转指定列表中元素的顺序
  3:  public static void shuffle(List<?>list)
        使用默认的随机源随机排列指定的列表

以上就是容器集合中的内容啦,希望我的文章对你有所帮助,如果有错误的地方还望大家批评指正,谢谢大家阅读! 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值