zoukankan      html  css  js  c++  java
  • java集合的方法及使用详解

    一、java集合的分类及相互之间的关系

      Collection接口:向下提供了List和Set两个子接口
        |------List接口:存储有序的,存储元素可以重复

          |------ArrayList(主要的实现类)、LinkList(适用于频繁的插入删除操作)、Vector(古老的实现类,线程安全的)

        |------Set接口:存储无序,元素不可重复

          |------hashSet、LinkHashSet、treeSet

      Map接口:存储 “键-值 ”对的数据

        |------HashMap、LinkedHashMap、HashTable(子类:properties)


    二、Collection集合常用的15中方法,下面分别对15种方法进行详解:

      Collection coll=new ArayList();   //创建ArrayList集合对象

    方法1. size() :  返回集合中元素的个数;

       coll.size();

    方法2. add(Object obj):  向集合中添加一个元素,可以是多种不同的类型;

      coll.add(123);

      coll.add("AA");

      coll.add(new Date());

    方法3. addAll(Collection coll):   将行参coll中包含的所有元素添加到当前集合中

      Collection coll1=Arrays.asList(1,2,3);    //将数组转化为一个集合

      coll.addAll(coll1);

    方法4. isEmpty():  判断集合是否为空;

      coll.isEmpty();

    方法5. clear():  清空集合元素;

      coll.clear();

    方法6. contains():  判断集合中是否包含指定的obj元素,包含返回true,否则返回false;(判断依据:根据元素所在类的equals()方法进行判断,如果存入集合中的元素是自定义类的对象,要求自定义类要重写equal() 方法)

      coll.contains("AA");

    方法7. containsAll(Collection coll):  判断当前集合中是否包含coll中所有的元素;

      Collection coll1=new ArrayList();

      coll1.add("AA");

      coll1.add(123);

      coll.containsAll(coll1);

    方法8. retainAll(Collection coll):  取当前集合和coll的共有的元素,返回给当前集(求两个集合的交集)

      coll.retainAll(coll1);

    方法9. remove(Object obj):  删除一个元素,删除成功返回true,否则返回false;

      coll.remove("BB");    //返回false,因为集合coll中不存在元素BB

      coll.remove("AA");    //返回true,元素AA删除成功

    方法10. removeAll(Collection coll):  从当前集合中删除包含在集合coll中的元素(求两个集合的差集);

      coll.removeAll(coll1)

    方法11: equals(Object obj):  判断两个集合中所有元素是否完全相同; 

      Collection coll2=new ArrayList();

      coll2.add(123);

      coll1.equals(coll2);

    方法12: hashCode():  计算机集合中的hash值;

      coll.hashCode();

    方法13: toArray():  将集合转化为数组;

      Object obj=coll.toArray();

    方法14. iterator():  返回一个Iterator接口实现类的对象,实现集合的遍历;

      Iterator iterator=coll.iterator();

      iterator.next();    //返回集合元素

      while(iterator.hasNext()){  terator.next();  }  //实现元素迭代输出


     二、下面讲解Collection集合的遍历:

      集合正确的遍历方法:

    方法1. Iterator迭代器遍历(常用):

      Iterator i=coll.iterator();

      while(i.hasNext()){  i.next();  }

      如下图:i.next()方法最初指向的是Iterator对象集合的初始位置即橙黄色区域的位置,相当于栈 -1的位置,不包含任何集合元素,必须使用i.hasNext()方法判断下一个元素是否为空。

    null
    123
    AA
    new Date()
    new Person()

      错误的使用方法:

      while(i.next()!=null){  i.next();  }

    方法2. 增强for循环遍历:

      for(Object i : coll){  i;  }

    方法三:简单for循环遍历:

      for(int i=0;i<coll.size();i++){  coll.get(i);  }


    四、List相对于Collection新增加的方法

      List list=new ArrayList();

    方法1. Object set(int index , Object obj):  将位置为index的元素更改为obj元素

    方法2. Object get(int index):  获取指定位置的元素

    方法3. void add(int index , Object obj): 指定位置增加元素

    方法4. boolean addAll(int index , Collection eles)

    方法5. int indexOf(Object obj):  返回当前对象在集合中首次出现的位置,找不到返回-1

    方法6. int lastIndexOf(Object obj):  返回obj元素最后一次出现在集合中的位置

    方法7. Object remove(int index):  删除指定位置的元素

    方法8. List subList(int fromIndex , int toIndex):获取从fromIndex到toIndex结束的左闭右开的List集合

      

  • 相关阅读:
    Mvc+三层(批量添加、删除、修改)
    js中判断复选款是否选中
    EF的优缺点
    Git tricks: Unstaging files
    Using Git Submodules
    English Learning
    wix xslt for adding node
    The breakpoint will not currently be hit. No symbols have been loaded for this document."
    Use XSLT in wix
    mfc110ud.dll not found
  • 原文地址:https://www.cnblogs.com/zk-blog/p/Collection.html
Copyright © 2011-2022 走看看