zoukankan      html  css  js  c++  java
  • 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方法来输出

  • 相关阅读:
    2013年发生云盘圈地大战的原因(1是因为流量成本降价,2是因为硬盘降价,3是免费是未来的商业模式)
    硬盘可以支持140万小时(也就是159年)的MTBF(硬盘只是一次性的投入)
    百度不愧为流量之王(空间的问题只是满足了用户之间的“虚荣”,而功能的完善才最终决定了事件的走向)
    唐太宗用人 不以一恶忘其善(使用每个人的特点去做事情)
    js模块化编程
    Flux
    安装配置gerrit
    redis
    Ruby
    演进式设计
  • 原文地址:https://www.cnblogs.com/YanZhuDL/p/11507585.html
Copyright © 2011-2022 走看看