zoukankan      html  css  js  c++  java
  • Java集合框架的知识总结(1)

    Java集合框架的知识总结(1)

    所有集合类都位于java.util包下。集合中只能保存对象(保存对象的引用变量)。

     Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些接口或实现类。

     总的架构如下,非常重要,包含继承关系,实现的分类,

    Collection接口: 

           Set接口:

                HashSet具体类
                LinkedHashSet具体类
                TreeSet具体类
           List接口:              ArrayList具体类
                LinkedList具体类
                向量类Vector具体类
                Stack具体类
    Map接口:        HashMap类
           LinkedHashMap类
           TreeMap类                 

     

    Set和List接口是Collection接口派生的两个子接口。

    Map实现类用于保存具有映射关系的数据(key-value)。

     Collection接口,它是处理对象集合的根接口,提供了一些公用方法,size,Iterator,add,remove什么的

    Set、List和Map可以看做集合的三大类。

         List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问。

         Set集合是无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问(也是不能集合里元素不允许重复的原因)。

         Map集合中保存Key-value对形式的元素,访问时只能根据每项元素的key来访问其value。

    Vector 和ArrayList的异同

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

      主要区别:

      Vector线程安全,ArrayList重速度轻安全,线程非安全。长度需增长时,vector默认增长一倍。ArrayList增长50%

    Hashtable和HashMap的异同

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

      主要区别:

      Hashtable继承Dictionary类,HashMap实现Map接口,Hashtable线程安全,HashMap线程非安全

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

    public class TestK {

     public static void main(String [] args){  

     Collection col =new ArrayList();

      //增加元素  

      col.add(1);

      col.add(2);

      System.out.println(col);  

      //集合长度   System.out.println(col.size());

      //可重复,有序(不唯一,有序)

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

      list.add("aaa");

      list.add("bbb");  

      list.add("aaa");  

      //向指定位置,插入元素  

      list.add(1,"ccc");

      String val= list.get(0);   

      //删除指定位置值(返回删除掉的值)

     c.remove(6);

      //是否包含指定元素   

      boolean flag=list.contains("bbb");   

      System.out.println(list);   

      System.out.println(val);

      System.out.println(flag);   

      }

    }

    ArrayList和Linkedlist的区别:

      A:都实现了List

      B:ArrayList是可变长数组方式实现,查询效率高,LinkedList是链接方式实现,增加和删除效率高;

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

    Map<Key,Value> maps =new HashMap<Key,Value>();

     public class TestMap {
     public static void main(String [] args){
      //key-->value
      //名字-->企鹅
      Map<String,Penguin> maps=new HashMap<String,Penguin>();
      //增加
      Penguin p=new Penguin();
      p.setName("欧欧");
      p.setSex("男");
      maps.put("欧欧",p);
      //取值
      //maps.get(key)
      Penguin p1=maps.get("欧欧");
      p1.print();
    //  System.out.println(maps);
      //大小
      System.out.println(maps.size());
      //是否包含key
      System.out.println(maps.containsKey("欧欧"));
      //删除
      maps.remove("欧欧");
      
     }
    }

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


     

  • 相关阅读:
    li float后IE下有空格
    [转]输入框对齐问题
    footer贴在底部的布局
    css3.0参考手册
    Java变量的命名规范
    刷题01
    前端面试题
    Cadence学习封装制作(焊盘)
    Cadence学习文档后缀简介
    Cadence学习PCB设计(序)
  • 原文地址:https://www.cnblogs.com/xuling123/p/6672541.html
Copyright © 2011-2022 走看看