• Java中学校没学过的东西


    Collection集合细分为两类一个是List集合还有Set集合

    list集合 容器:存储数据  功能:增删改查

    list.remove(下标/存放的值);删除指定的值

    list.removeAll(list):删除在集合中插入的集合的所有值

    list.clear();删除存放的所有的值

    list.add(值);往集合末尾添加值

    list.add(下标值,添加的值):往指定坐标位置插入的值

    标准循环for(int i = 0;i <= list.size();i++){}

    增强型循环(Object obj :list){}

    list.addAll(Arraylist list);将另一个list插入到list末尾中

    list.addAll(下标,Arraylist list);将另一个list插入到list末尾中

    list.set(下标,修改的值);把指定下标上的值改为修改的值

    包含:list.contains(Object obj) 将集合每个值进行比对,判断集合是否有包含这个对象的值,有返回true 无则返回false

    迭代器对象 Iterator 方法:hasnext():判断下一个是否为空,不为空为true 为空为false(一般将其写入循环当中);next():跳转至下一个元素

    使用方法 : Iterator it = list.interator();-------->it.hasnext();  Or   it.next();

    正向迭代

    ListIterator lis = list.listIterator();
    while(lis.hasnext()){
    system.out.println(lis.next());
    }

    反向迭代(需要正向迭代一次才能反向迭代)

    ListIterator lis = list.listIterator();
    while(lis.hasPervious){
    system.out.println("lis.previous");
    }

    常用的子类:

    1.ArrayList:底层是数据结构,默认长度是10,当我们存储数据超过了10个之后,它会自动增加原来的一半(5个)
        由于有下标的存在,所以查阅很快,但是插入和删除时,效率反而很低

    2.LinkedList: 底层是链表结构,无下标排序
        由于没有下标的存在,所以查阅特别慢,但是插入和修改是效率很高

    3.Vector:底层是数据结构,默认长度是10,超过默认长度自增十个,他和list相比是线程安全 ,已经被淘汰了

    Set集合

    list是有序的,元素可以重复,因为集合当中有索引
    Set是无序的,元素不可以重复,集合当中无索引

    分为了hashSet和TreeSet

    hashSet底层是哈希表,hash是由hash值组成的一张表,每个元素都有一个叫hashCode方法,这个方法返回的是该对象所在的物理内存地址,16位进制组成的数,这个数就是hash值,一般情况下每个数的hash值是不一样的
        然而在hashSet比较过程中,其本身的equal方法是比对其物理内存地址

    TreeSet TreeSet底层是二分叉数,会有自己的排序规则,按照自己的排序规则进行排序,存放在里面的元素必须是具备比较性的,因为不具备比较性的话,TreeSet无法排序。 就会提示错误
        (这里有个点要多加注意,因为set是无序的,所以要对其输出,要使用Iterator方法来输出

  • 相关阅读:
    [转]WM_COMMAND消息
    [转]DELPHI之关于String的内存分配
    [转]我们永远优雅,但绝不炫耀:合并BPL包图文教程!
    [转]AS400
    [转]Delphi中变体记录及存储方式
    [转]WaitForMultipleObject与MsgWaitForMultipleObjects用法
    [转]delphi中的HWnd,THandle,HDC有什么区别
    [转]Delphi使用FireBird嵌入式版本发布方法
    [转]如何使用Delphi设计强大的服务器程序
    Oracle递归查询
  • 原文地址:https://www.cnblogs.com/YanZhuDL/p/11507585.html
Copyright © 2020-2023  润新知