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

    集合的概念:一种工具类,像是容器,储存任意数量具有相同属性的对象

    hash码时无序的,但查找是最快的。Array内存地址连续(数据查找更快)   Linked内存地址不连续(数据更新更快)

    1、List接口

        List是有序并且可以重复的集合称为序列
        取得List元素的方法
        ①List长度 size()遍历,get(序号);
        ②通过迭代器来遍历List    //所有实现了Collection接口的类都有一个iterator()方法
          iterator 例:ArrayList a;
          Iterator it = a.iterator;
          while(it.next()){
            Course cr = (Course) it.next();
          }
        Arrays.asList();将数组转为List

    •  增:add(int index,E element)//将指定的元素插入此列表中的指定位置。

        addAll(int index, Collection<? extends E> c) // 从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。

    •  删:remove(int index) // 移除此列表中指定位置上的元素。

        remove(Object o) //移除此列表中首次出现的指定元素(如果存在)
        removeAll(Collection<?> c) //移除此 collection 中那些也包含在指定 collection 中的所有元素

    •  改:set(int index,E element)
    •    查:get(序号);

        判断一个元素出现的位置indexOf(Objext o)。
        在删除int数据类型的时候,若不是利用索引来删除的话,则需 remove(new integer(int x))

    2、Set接口

      Set是无序且不可以重复的集合,被称为集

        Set set = new HashSet();

    •  增:set.add();
    •  删:set.remove();
    •  改:Set 无set()方法// 因为List有序,Set无序
    •  查:循环遍历Set中的元素只能用Iterator或ForReach,不能用get()

       set.isEmpty();//判断是否为空 也可使用set.size()方法
       长度size()
       Set中添加对象,无论添加多少次,只保留第一次添加的对象

    3、Map接口 

      Map出现的原因:Hashset没有索引,不方便通过索引来对容器进行操作
      Map其实就是在set的基础上加了索引,并且这个索引可以自己定义
      Map是以key-value(键-值对)的方式保存的,值可以重复,但索引不能重复,每个键最多映射一个值
      Entry代表一对key-value,它是Map的属性(成员变量)
      Map的泛型,形式如:Map< k , v >
      HashMap类
      HashMap类中的Entry类是无序排列的。
      key值和value值都可以为null,但一个HashMap只能有一个Key值为null的映射

    •    增:put(K key, V value) //在此映射中关联指定值与指定键。
    •  删:remove(Object key) //从此映射中移除指定键的映射关系
    •  改:put(K key, V value)
    •  查:entrySet() //返回此映射所包含的映射关系的 Set 视图。

      keySet() //返回此映射中所包含的键的 Set 视图。
      values() //返回此映射所包含的值的 Collection 视图。
      values() // 返回此映射所包含的值的 Collection 视图,没有则返回null。
      例:
        Map<String,String> map = new HashMap<String,String>();
        map.set(“1”,”one”);
        map.set(“2”,”two”);
        map.set(“3”,”three”);
        map.set(“4”,”four”);
        Set<Map.Entry<String,String>>entrys = map.entryset();
        for(Iterator<Map.Entry<String,String>> i = entrys.iterator();i.hasNext();){
        Map.Entry<String,String> entry = i.next();
        System.out.println(entry.getvalue());

    4、泛型

      指定当前的容器中只能放置哪种类型,泛型集合可以添加泛型的子类型的对象实例
      泛型中的限定类型不能使用基本数据类型,可以使用包装类限定允许存入的基本数据类型
      List<Person> list = new ArrayList<Person>();

    5、包含

      Collection中的contains  

      List/Set中包含某元素:

        contains(Object o) // 如果 包含指定的元素,则返回 true。
            containsAll(Collection<?> c) // 如果包含指定 collection 的所有元素,则返回 true。

      List中课程的位置:

        indexOf(Object o) // 返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。
        lastIndexOf(Object o) // 返回此列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回 -1。

      Map中:

        containsKey(Object key) // 如果此映射包含指定键的映射关系,则返回 true。
        containsValue(Object value) //如果此映射将一个或多个键映射到指定值,则返回 true。 

    6、Collections工具类

      java.util.Arrays  操作数组的各种静态方法

      java.util.Collection 操作集合对象的工具类

      Collections.sort(List<T> list) // 必须实现Compareble接口,根据元素的自然顺序 对指定列表按升序进行排序。如果是String类型的话,先看首字母然后依次看第二个,第三个。。。排列顺序:数字0~9,大写字母A~Z,小写字母a~z;

      Comparable接口//定义默认的排序规则  其实现类要实现compareTo()方法,返回正数则表示大,负数则表示小,0表示相等

      Comparator接口//定义临时的比较规则  其实现类要实现compare()方法

    一个无从安放的函数

      Random random() = new Random();
      random.nextInt(100);//随机生成一个100以内的整数

  • 相关阅读:
    MongoDB 释放磁盘空间 db.runCommand({repairDatabase: 1 })
    RK 调试笔记
    RK Android7.1 拨号
    RK Android7.1 移植gt9271 TP偏移
    RK Android7.1 定制化 itvbox 盒子Launcher
    RK Android7.1 双屏显示旋转方向
    RK Android7.1 设置 内存条作假
    RK Android7.1 设置 蓝牙 已断开连接
    RK Android7.1 进入Camera2 亮度会增加
    RK 3128 调触摸屏 TP GT9XX
  • 原文地址:https://www.cnblogs.com/Lune-Qiu/p/7392012.html
Copyright © 2011-2022 走看看