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

    一.集合框架

               Collectoin                   Map

           List           set              HashMap

    ArrayList LinkedList  HashSet

    1.1 List的方法

         List<元素> list = new ArrayList<元素类型>()

         list.add(元素);//增加元素

         list.add(元素);//向指定位置插入元素

         list.remove(元素);//删除指定小标的元素

         list.remove(元素);//删除指定元素

         list.remove(元素);//获得指定下标的元素

         list.remove(元素);//集合中是否有指定元素

     1 public class Test1 {
     2     public static void main(String[] args) {
     3         Dog ooDog = new Dog("欧欧","拉布拉多犬");
     4         Dog yyDog = new Dog("丫丫","雪娜瑞");
     5         Dog mmDog = new Dog("美美","雪娜瑞");
     6         Dog ffDog = new Dog("菲菲","拉布拉多犬");
     7         List d = new ArrayList();
     8         d.add(ooDog);
     9         d.add(yyDog);
    10         d.add(mmDog);
    11         d.add(2, ffDog);//添加yyDog在指定位置
    12         System.out.println("共计有"+d.size()+"条狗狗");
    13         System.out.println("分别是:");
    14         for(int i=0;i<d.size();i++){
    15             Dog dog =(Dog) d.get(i);
    16             System.out.println(dog.getName()+"	"+dog.getStrain());
    17         }
    18     }
    19 }
    示例1

    运行结果为:

    1.2 Collection,List,Set的区别

         Collection:不唯一,无序

         List:不唯一,有序

         Set:唯一,无序

    1.3 ArrayList和LinkedList的区别

         a.都实现了List

         b.ArrayList是可边长数组方式实现,查询效率高

           LinkedList是链表方式实习,增加和删除效率高

    1.4 List的常用方法

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

         list.add(obj);//增加元素

         list.get(下标)//获得指定下标元素

         list.size();//长度

         list.remove(obj);//删除指定元素

         list.contains(obj);//是否包含指定元素

    1.5 Map 常用方法(键值对方式存储数据)

         Map<Object,Object> maps = new HanshMap<Object,Object>();

         maps.put(key,value);//增加元素

         maps.get(key);//获得指定key的值

         maps.size();//长度

         maps.remove(key);//删除指定元素

         maps.containsKey(key);//是否包含指定key

     1 public class Test2 {
     2     public static void main(String[] args) {
     3         Dog ooDog = new Dog("欧欧","拉布拉多犬");
     4         Dog yyDog = new Dog("丫丫","雪娜瑞");
     5         Dog mmDog = new Dog("美美","雪娜瑞");
     6         Dog ffDog = new Dog("菲菲","拉布拉多犬");
     7         LinkedList d = new LinkedList();
     8         d.add(ooDog);
     9         d.add(yyDog);
    10         d.addFirst(mmDog);
    11         d.addLast(ffDog);
    12         Dog dogFirst = (Dog)d.getFirst();
    13         System.out.println("第一条狗狗的昵称是:"+dogFirst.getName());
    14         Dog dogLast = (Dog)d.getLast();
    15         System.out.println("第一条狗狗的昵称是:"+dogLast.getName());
    16         d.removeLast();
    17         d.removeFirst();
    18         System.out.println("
    删除部分狗狗后还有"+d.size()+"条狗狗");
    19         System.out.println("分别是:");
    20         for(int i=0;i<d.size();i++){
    21             Dog d1 = (Dog) d.get(i);
    22             System.out.println(d1.getName()+"	"+d1.getStrain());
    23         }
    24     }
    25 }
    示例2

    运行结果为:

     注意;key是唯一的,重复的话那么后面的会覆盖前面的value是可以重复的

        Vector和ArrayList的异同

         a.Vector的线程安全,ArrayList重速度轻安全,线程非安全

         b.长度需增长时,Vector默认增长一倍,ArrayList增长50%

        Hashtable和HashMap的异同

         a.实现原理,功能相同,可以互用

         b.主要区别

            1,Hashtable继承Dictionary类,HashMap实现接口

            2,Hashtable线程安全,HashMap线程非安全

            3,Hashtable不允许null值,HashMap允许null值

    1.6集合的迭代

         语法:Interator<Object> it = 集合.iterator();

               while(it.hasNext){

                 Object obj = it.next();

                }

               it.hasNext();//判断是否有下一个元素

               it.next;//移动指增,返回指增指向元素

    注意:集合在 篇利的过程中不能进行修改,进行了修改操作,那么就会抛出

    ConcarrentModification Exception异常,需要修改的话,使用迭代器的it.remove()方法;

     1 public class Test3 {
     2     public static void main(String[] args) {
     3         Dog ooDog = new Dog("欧欧","拉布拉多犬");
     4         Dog yyDog = new Dog("亚亚","雪娜瑞");
     5         Dog mmDog = new Dog("美美","雪娜瑞");
     6         Dog ffDog = new Dog("菲菲","拉布拉多犬");
     7         Map m = new HashMap();
     8         m.put(ooDog.getName(), ooDog);
     9         m.put(yyDog.getName(),yyDog );
    10         m.put(mmDog.getName(),mmDog );
    11         m.put(ffDog.getName(),ffDog);
    12         System.out.println("使用Iterator遍历,所有狗狗的昵称和品种分别是:");
    13         //取出所有key的集合
    14         Set keys = m.keySet();
    15         Iterator it = keys.iterator();
    16         while(it.hasNext()){
    17             String k = (String)it.next();
    18             Dog d = (Dog)m.get(k);
    19             System.out.println(k+"	"+d.getStrain());
    20         }
    21     }
    22 }
    示例3

    运行结果为:

  • 相关阅读:
    Net
    GUI
    第三方模块
    步入大四的第一天 2020/9/3
    期末复习计划及每日更新 8/10-9/2
    成都,come back 2020/8/10
    回家第三天 2020/7/31
    连续两天的好太阳的一天 2020/7/27
    规划规划,接下来的一个月该如何安排 7/25
    紧紧张张又兴兴奋奋的一天 2020/7/24
  • 原文地址:https://www.cnblogs.com/-chaoming/p/7019939.html
Copyright © 2011-2022 走看看