• Java学习笔记之——集合


    集合是类,用来存储多个数据,有属性、方法

    集合是一个可变数组,保存相同元素并且长度可变

    1. 体系

    1)Collection:存储一个一个的值

    Iterable:

    Iterable<T> iterator()

    返回一个组T类型的元素上进行迭代的迭代器

    用来遍历元素的对象

    Collection子接口:ListSet

    List

    特点:元素可重复,有序(有序号的),完全可以使用List替换数组

    有序:放进去的顺序和拿出来的顺序是一样的

    Set

    特点:元素不可重复,无序(无序号的)

    无序:放进去的顺序和拿出来的顺序不一样

    Queue:队列(会和线程公用,暂时不掌握)

    2)Map:存储一对一对的值,键值对(key-value)

    泛型

    只能是引用类型

    可以把数据类型变量化

    可以根据需要指定类型

    a.可以在类上加泛型,整个类都可以用,在创建对象时指定类型

    可以限定泛型的类型:

    T extends 父类:向下限定

    T super:向下限定

    b.对于静态方法,可以在方法上加泛型

    访问修饰符<泛型列表> 返回值类型 方法名(参数列表){

    实现代码

    }

    2. ArrayList

    使用语法:ArrayList<引用数据类型> arrayList=new ArrayList<>();

     

    常用方法:

     

    3. 遍历集合(List的遍历)

    方法一:for循环

    for(int i=0;i<array.size();i++){

      system.out.printlt(array.get(i));

    }

    方法二:迭代器(必须掌握)

    遍历数组尽量使用迭代器,因为靠谱

     

    1)迭代器相关方法API:

    void

    forEachRemaining(Consumer<? super E> action) 

    对每个剩余元素执行给定的操作,直到所有元素都被处理或动作引发异常。

    boolean

    hasNext() 

    如果迭代具有更多元素,则返回 true 。

    E

    next() 

    返回迭代中的下一个元素。

    void

    remove() 

    从底层集合中删除此迭代器返回的最后一个元素(可选操作)。

    2)迭代器删除方法使用案例

     

    方法三:foreach(增强for循环)

    语法:for(元素类型 变量名:Collection集合){

    system.out.printl(变量名);

    }

     

    Collection,数组都可以

    实现Iterable接口的类可以成为foreach的目标

    适用于做遍历输出

    本质上:还是使用迭代器

    4. ArrayList的排序

    方法一:冒泡排序

    方法二:Comparable比较接口

    接口 Comparable<T>

    参数类型: 

    T - 可以将此对象与之进行比较的对象类型

    方法:

    int compareTo(T o) :比较此对象与指定对象的顺序

    o -  要比较的对象

    返回:

    负整数、零或正整数,根据此对象是小于、大于、等于指定对象

    当前对象大于传入对象,返回正整数

    当前对象等于传入对象,返回

    当前对象小于传入对象,返回负整数

    一个类实现是这个接口,意味着可以通过int compareTo进行比较大小

    借助Collections:工具类

    short()方法:排序

    总结:

    1) 元素类实现Comparable接口,重写CompareTo方法

     

    2) 利用Collection.short(List)排序

     

    方法三:单独一个类实现Comparator接口,具备比较两个元素大小的方法

    Comparator<T>:

    int compare(T o1,T o2)   比较用来排序的两个参数

    参数:o1---要比较的第一个对象

    o2---要比较的第二个对象

    返回:

    根据第一个参数小于、等于、大于第二个参数分别返回负整数、零、正整数

    1)定义类,实现Comparator的继承,重写Compare方法

     

    2)实现排序

     

    或者使用匿名内部类直接实现排序:

     

  • 相关阅读:
    委托~~~~~~~~~~~~~
    Lambda表达式的前世今生~~~~~~
    数据库/MySQL的安装
    flask 源码专题(十一):LocalStack和Local对象实现栈的管理
    python面试题:redis数据库
    python面试题七: mysql数据库
    wtforms: remove ' fill out this field'
    python面试题六: 剑指offer
    python面试题五:Python 编程
    python面试题四:Python web框架
  • 原文地址:https://www.cnblogs.com/wrf-hsj/p/10110104.html
Copyright © 2020-2023  润新知