• 第十五天:集合


    一、集合:Collection

    一些方法(更多方法请参考帮助文档):增add(Object obj)、删remove()/removeAll()/clear()、改set(index,Object)、查get(index),迭代iterator()—>遍历

    1:List接口

             特点:有序可重复的,可以用下标来进行操作。

             常用的类;

    1.1 ArrayList:底层是以数组形式存储数据,查找效率高,增删改较低

    1.2 LinkedList:底层以链表形式存储数据,查找效率低,增删改较高

    2:Set接口

             特点:无序:放进去的顺序跟取出来的顺序不一样。不可重复的。

             方法跟Collection方法一样。

            

             2.1:HashSet:用哈希表去除重复元素,判断一个数据是否重复,首先是判断改数据的哈希值是否与以创建的哈希表中的值相同,如果相同就为重复,如果不同再调用equals方法比较是否相同,返回true则表示同一个数据,不会添加,否则就添加。

             2.2:TreeSet:用红黑树(平衡的二叉树)结构来存储数据。根据compareTo方法的返回值去除重复元素和排序。compareTo方法是接口Comparable中的,使用者可以在实现给接口的情况下重写该方法来自定排序规则。  

    3:泛型编程 , 表示形式< >,< > 尖括号中可以放多个字母,用“,”分开<T,E>

    在运用集合的时候,将运行时的错误提前到编译时期。在创建集合的时候,就规定集合元素的类型。

             3.1:泛型定义在方法上。泛型方法,返回值类型也可以用泛型表示

                       public <T> 返回值类型  方法名(T t){

                                方法体。

                       }

    public <T> T  方法名(T t){

                                方法体。

                                return  t;

                       }

             T;表示任意一种引用数据类型。类型名称可以用任意字母或者单词表示,一般都用一个大写字母表示。

             ?:表示任意引用类型。有可能有多种引用数据类型

             ? extends T:表示任意T或者T子类。

             ? super T :表示任意T或者T的父类。

             3.2:泛型类

                       class 类名 <T>{

                       }

             3.3:泛型接口

    Interface  类名 <T>{

                       }

    4.集合类Collections

     

    static
    <T> int
    binarySearch(List<? extends Comparable<? super T>> list, T key)
              使用二分搜索法搜索指定列表,以获得指定对象。
    static void swap(List<?> list, int i, int j)
              在指定列表的指定位置处交换元素。
    static
    <T extends Comparable<? super T>>
    void
    sort(List<T> list)
              根据元素的自然顺序 对指定列表按升序进行排序。
  • 相关阅读:
    抽奖概率算法
    redis启动异常
    php如何快速读取大文件
    nginx反向代理解决跨域
    sublime修改侧边栏字体
    curl
    公众号开发一
    数组
    在windows下用vagrant建立lnmp开发环境
    gets--vs--fgets
  • 原文地址:https://www.cnblogs.com/xinge1993/p/4695751.html
Copyright © 2020-2023  润新知