zoukankan      html  css  js  c++  java
  • List集合

    集合类方便操作,增删查找容易。
    集合的超级接口collection:
    1.List:
    1.ArrayList:是存在一个数组(Object[]),添加,删除元素很慢,查找很快,元素在内存中是有序的。
    2.LinkedList:添加元素比较快,删除,查找比较慢,元素在内存中是无序的。

    ArrayList:维护的是一个Object[],默认容量是10,如果默认不够就增加为原来的1.5倍。

    ArrayList:特有的方法
    ensureCapacity(int minCapacity):手动增加容量。
    trimToSize():调整集合的容量刚好符合元素的个数。

    2.set:也是一个接口:继承Collection
    特点:无序是无序的,不能重复的。
    2.HashSet:用哈希表来存值。
    原理:如果用HashSet存放对象,首先会调用对象的hashCode方法获取到哈希值,通过哈希表值做移位运算,计算出元素在哈希表中的位置。
    情况一:如果算出的位置没有任何元素,可以直接将对象存放在该位置。
    情况二:如果算出的位置存在元素,这个时候会调用将要存入的元素的equals方法和已经存在的元素作对比,如果equals返回的true那么就表示是重复的元素,如果equals返回的是false直接将元素一样保存在该位置。

    3.TreeSet:里面存放的元素会根据自然顺序进行排序。

    1.如果添加的元素存在自然排序的特性,那么存入的元素就会通过自然排序
    2.如果添加的元素,不具备自然排序的特性,那么这个时候定义的类必须要实现Comparable接口。将元素的比较规则定义到ComparTo方法中去。
    ComparTo的比较规则:返回一个0或者负数或者整数,分别表示相等,大于,小于。
    3.自定义比较器:既没有自然特性,又没有实现ComparTo,这个时候就需要在写TreeSet对象时传一个比较器。
    比较器的定义方式:
    自定义一个类实现:Compartor接口
    通过实现Compartor中Compar(Object o1,Object o2)来指定元素的比较规则。

    4.TreeSet:底层是使用二叉树来存放数据的。
    list:元素是有序的,可以重复。
    list 中特有的方法:
    1.添加元素:
    add(String str);向滚动列表的末尾添加指定的项。
    add(String str,int index);向滚动列表中索引指示的位置添加指定的项。
    add(int index,Collection e);向滚动列表中索引指示的位置添加指定的集合。
    2.获取元素:
    get(int index);获取指定索引位置的元素。
    subList(int fromIndex,int toIndex);截取指定范围的元素。
    3.查找元素:
    indexOf(Object o);如果有就返回第一次出现的位置。如果没有就返回-1。
    lastIndexOf(Object o);查找集合的最后一个元素。
    4.删除元素:
    remove(int index);删除指定位置的元素。
    5.更新集合:
    set(int index,Object o);替换指定位置的值。

    6.list集合中的迭代器:listIterator()
    创建一个迭代器
    Iterator it = list.iterator();
    7.用三种方法遍历集合list:
    第一种方法(toArray)
    list list = new ArrayList();
    list.add(12);
    list.add(1);
    list.add(2);
    //把集合变成数组的形式进行遍历
    Object[] obj = list.toArray();
    for (int i = 0; i < obj.length; i++){
    System.out.println(obj[i]);
    }

    第二种方法(get())
    for(int i = 0; i < list.size(); i++){
    System.out.println(list.get(i));
    }

    第三种方法(iterator):
    Iterator it = list.iterator();
    while(it.hasNext()){
    System.out.println(it.next());
    }

    迭代器:
    1.迭代器用来操作集合中的元素,增删,获取集合中的对象。
    Iterator:迭代器的超级接口,所有的迭代器的接口都是继承Iterator。

    2.迭代器中常用的方法:
    hasNext();判断当前指针指向的位置是否存在元素。
    next();获取当前指针指向的元素,这个方法调用一次指针就会下移一次。
    remove();删除最后一次出现的对象。也就是指针所指位置的元素。


    List 集合中特有的方法 都是通过下标来操作的.

    listItreaor : 继承 Iteraor
    listItreaor : 特有的方法:
    hasPrevious();获取当前指针指向的上一个元素
    previous();获取上一个元素
    previousIndex();获取上一个元素的索引位置
    add(String str);
    set(String str);

  • 相关阅读:
    2021.1.28 个人rating赛补题报告
    2021.1.23 个人rating赛补题报告
    2021.1.23 个人rating赛补题报告
    2020.12.14 个人训练赛补题报告
    2020.11.28 2020团体程序设计天梯赛补题报告
    2020.12.3 Codeforces Beta Round #73(Div2)补题报告
    Xhorse VVDI Prog V5.0.6 is Ready for BCM2 Adapter
    Program 2021 Ford Bronco All Keys Lost using VVDI Key Tool Plus
    Xhorse VVDI Prog V5.0.4 Software Update in July 2021
    How to use Xhorse VVDI2 to Exchange BMW FEM/BDC Module?
  • 原文地址:https://www.cnblogs.com/12kk/p/6123420.html
Copyright © 2011-2022 走看看