zoukankan      html  css  js  c++  java
  • 集合框架(一)

    一,集合

      定义:位于Java.util包下的一些常用接口和类。是Java里提供的一种容器,用于存储多个数据。

      ★,数组与集合区别:

        1,数组长度是固定的。集合的长度是可变的

        2,数组中存储数据类型是同一类,常用来存储基本数据类型。集合存储的都是对象,对象类型可以不一致。

    二,集合框架

      Java SE 提供了各种API(方法,接口,规范等),使用API前,必须了解继承和接口架构,才能了解何时用哪个类。————最终目标:灵活运用。

      集合按照存储结构可分两大类:

        1,单列集合-------Java.util.Collection

        2,双列集合-------Java.util.Map

    三,Collection

      定义:单列集合类的根接口,定义了所有的单列集合的共性方法。

      作用:用于存储一系列符合某种规则的元素。有两个子接口:List Set

      常用方法:

        add(); 添加元素

        clear(); 清空集合

        remove(); 移除指定某个元素

        contains(); 判断是否包含某元素

        isEmpty(); 判断集合是否为空

        size(); 集合大小,返回集合中元素个数

        to Array(); 把集合元素存数组中,集合转数组

    四,List

      定义:List 接口,继承Collection,单列结合

      特点:1,有序 2,有索引 3,可重复

      常用方法:

        setint indexe element); 设置指定元素替换指定位置

        getint index); 获取下标元素

        add(); 添加

        remove(); 删除

      1ArrayList

        List的实现类。连续存储方式。可看做长度可变的数组。在内存中分配连续的空间来存储数据。

        特点:元素 查询快,增删慢。

        方法:同List

      2LinkedList

        List的实现类。键表式存储方式。可看做手拉手丢手绢游戏。

          FIrstnextnextLast

        特点:元素 增删快,查询慢。

        方法:

          addFirst(); 添加元素到首位

          addLast(); 添加元素到末位

          removeFirst(); 移除首位

          removeLast(); 移除末位

          getFirst(); 获取首位元素

          getLast(); 获取末位元素

    五,Set

      定义:java.util包下,继承Collection,单列集合

      特点:1,无序 2,无索引 3,不可重复,唯一

      原理:Set 在添加对象时会先判断加入对象是否已存在,采用equals去比较两个对象。存在则不存储,不存在添加存储。

        ★String系统类 重写了 equals 方法,比较两个对象String值是否相等。

      1HashSet

        Set主要实现类。

        存储原理:底层是一个哈希表结构,查询速度非常快

        方法:同Collection

          ★,不能用普通for循环遍历,只能用增强for,和迭代器遍历获取数据。

      2LinkedHashSet

        Set的实现类

        特点:1,有序 2,有索引 3,唯一不重复

    六,Iterator 迭代器

      定义:接口经常遍历结合中的元素,JDK针对这种需求专门提供的一个接口。Java.util.Iterator>属于集合的一部分。

      原理:有类似指针去依次指向元素,有元素就取出。

      使用:Collection 中有 iterator();方法用来让每个集合获取迭代器。

        //1,获取迭代器

        Iterator<Person> it=hs.iterator();

        //2,判断迭代器是否有下一个元素 it.has();

        //3,循环如果有,就取出 it.next();

        while (it.hasNext()){

             Person p = (Person) it.next();

             System.out.println(p);

        }

    七,Collections工具类

      常用方法:

      addAll(); 添加一系列元素

      shuffle(); 打乱集合顺序

      sort(); 默认升序排列

      sort(参数); 按自定规则排序

      public static void main(String[] args) {

             //2 创建集合

            List<Person> list =new ArrayList<>();

            //3 添加对象

            Collections.addAll(list,new Person("杨幂",30),new Person("刘诗",26),new Person("刘亦菲",28));

             //4 遍历

            Iterator it=list.iterator();

             while (it.hasNext()){

                  Person per=(Person) it.next();

                   System.out.println(per);

            }

             //5 打乱顺序

           Collections.shuffle(list);

            System.out.println(list);

             //6 年龄大到小

           Collections.sort(list, new Comparator<Person>() {

                @Override

                public int compare(Person o1, Person o2) {return o2.getAge()-o1.getAge(); }

             });

            System.out.println(list);

       }

  • 相关阅读:
    字典树略解
    NOIP2018普及组初赛解题报告
    Codeforces 23A You're Given a String...
    远程消息推送的简单方法
    IOS5,6,7的新特性
    面试问题1
    IOS推送消息的步骤
    C面试问题
    label的自适应文本,让文本自适应
    TCP连接的三次握手,TCP/UDP区别联系,socket连接和http连接的区别
  • 原文地址:https://www.cnblogs.com/kide1412/p/10883021.html
Copyright © 2011-2022 走看看