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以内的整数

  • 相关阅读:
    SortedList的使用示例
    oracle 查询
    sql group by统计
    删除隐藏盘符的隐藏共享,打开隐藏盘符
    【C#】Entity Framework 增删改查和事务操作
    CSS rem长度单位
    HTML 页面meta标签
    VUE 生成二维码(qrcodejs)
    VUE 密码验证与提示
    JavaScript 加解密库(crypto-js)
  • 原文地址:https://www.cnblogs.com/Lune-Qiu/p/7392012.html
Copyright © 2011-2022 走看看