zoukankan      html  css  js  c++  java
  • 第十五章、java集合框架

    javaSE包含了一组由类和接口组成的java集合框架(Java Collections Framework简称JCE),其目的是处理对象集合的通用框架,减少程序员的代码量
      被添加到集合中的对象称为一个元素
    对象的存储方式有三种:set(集)、list(列表)、map(映射),这几个接口都继承自Collection接口,所以拥有Collection接口的所有方法,它们的详细情况如下:

      List 接口
     
     List 接口三个常用的接口的应用顺序:LinkedList > ArrayList > Vector(线程比较安全。但性能没有ArrayList好)

    其特点:有重复的元素,有顺序、它的实现类通常支持null元素、通过索引访问list对象容器中的元素
     
    其应用形式:
           List list = new ArrayList();//List的标准定义
                 
      list.add(1);
      list.add(1);
      list.add(2);
      list.add("3");
      list.add('4');
      list.add(new Object());
      System.out.println("集合长度:"+list.size());
                  //遍历的过程,即得到元素
      for(int i=0; i
       System.out.println("第"+(i+1)+"个元素是:"+list.get(i));
      }

    Set接口 

    其特点:没有重复的元素,没有顺序
     
    Set set = new HashSet();//Set的标准定义,HashSet()方法速度快但不排序,TreeSet()方法速度慢但可以排序 
     //添加元素
     set.add(1);
     set.add(1);
     set.add('4');
     Object obj = new Object();//有new就会创建一个新对象
     set.add(obj);
     set.add(obj);
     System.out.println("SET集合的长度:"+set.size());
     Iterator ite = set.iterator();//迭代器
            //遍历的过程,即得到元素
    while(ite.hasNext()){
     System.out.println(ite.next());//得到元素
      }
    Set ks = map.keySet();
      Iterator ite = ks.iterator();//迭代器
                        //遍历的过程,即得到元素
      while(ite.hasNext()){
       Object obj = ite.next();//得到返回的数据的元素
       System.out.println(obj+"---"+map.get(obj));
      }
      


    Map接口 
    其特点:其属于是键(key)到值(value)的对应关系的集合,键(key)不可以重复,值(value)可以重复,

    在HashMap中通过get()来获取value,通过put()来插入value
    例如:
      Map map = new HashMap();//Map的标准定义
                          //添加元素  
      map.put(1(键(key)), 1(值(value)));
      map.put(1, 2);
      map.put(2, 2);
      map.put(3, "3");
      map.put(4, '4');
      map.put(5, new Object());
      map.put("晓丽", '4');
                    //得到元素
      System.out.println(map.size());//得到集合长度
      System.out.println(map.get("晓丽"));//得到晓丽的数据
    泛型

       可以定义类、接口的的数据类型定义之后只能添加定义的数据类型的值,例如:

      Listlist = new ArrayList();//泛型的标准定义
                         //添加定义后泛型后的元素
      list.add(new NewStudent(8));
      list.add(new NewStudent(10));
      list.add(new NewStudent(12));
        int s=list.size();//得到集合长度

                      //遍历的过程,即得到元素
      for(int i = 0 ; ilist.size();i++){
     System.out.println("第"+(i+1)+"个元素是:"+list.get(i));
    }

    Collections工具类和Arrays类

    Collection工具类其中包含了很多操作,这些操作包括对元素进行排序、查询、修改等,这些方法都是静态的
    Arrays类包含用来操作数组(比如排序和搜索)的各种方法
     

             List li=new ArrayList();
      li.add("a");
      li.add("f");
      li.add("b");
      System.out.println(li);//得到值的集合[a, f, b]

                     SortedSet接口为set类型容器提供了排序功能
                     SortedMap接口为map类型容器提供了对键排序功能
      Collections.sort(li);//排序操作

      for(Object o:li){//foreach循环,相对于for循环来说比较简单
       System.out.println(o);//得到排序后的结果a b f
      }

    排序: Comparable Comparator Collections.sort()

  • 相关阅读:
    bzoj3676 [Apio2014]回文串
    bzoj4199 [Noi2015]品酒大会
    bzoj3171 [Tjoi2013]循环格
    bzoj4709 [Jsoi2011]柠檬
    bzoj2668 [cqoi2012]交换棋子
    bzoj1458 士兵占领
    25号搜索的一些例子,。。Oil Deposits&&Red and Black&&Knight Moves&&Catch That Cow&&Tempter of the Bone
    第一次超水(我错了,有难度的)的组队赛!!!The Coco-Cola Store &&Multiple of 17&& Box Game
    博弈 7月24号:HDU 2176(Nim博弈)
    2013年7月23号:大数的加与乘I-number&&Power of Cryptography
  • 原文地址:https://www.cnblogs.com/tangyue/p/3684979.html
Copyright © 2011-2022 走看看