zoukankan      html  css  js  c++  java
  • java容器学习

     容器是java中重要的一部分,其接口的结构如下

          Collection

            |

        ------------------        Map

        |        |        |

       Set       List      HashMap

        |

      HashSet

    顾名思义,容器是用来存储东西的,对于对象,容器中存储的实质上是对象的引用,即对象的地址。

    Collection接口有两个子接口Set和List,除了均是用来存储元素这个共性之外,分别具有不同的特点。

    List类别的容器一般具有有序的特点,当元素插入删除时,维护了元素的顺序,并且可以放置重复元素。

    Set类别的容器不允许放置重复元素,且一般是无序的。

    Map类别的容器存储了对象和唯一可以标识该对象的主键的映射,不可以放置重复的主键。

    List子类都是有序的,一般不用Collection接口来new List子类的的实例,这样会丢掉其中关于有序的

    方法;当需要产生List子类实例时,应该用List接口进行new;因为所有对象都是Object的子类,故容器当中可以存放任意类型的对象。

    package cn.learn.collection;
    
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Vector;
    class Dog{
    	
    }
    
    public class Test {
    	 public   static   void   main(String[]   args){
    		 List list = new LinkedList();
    		 
    		 list.add("aa");
    		 list.add(new Date());
    		 list.add(new Dog());
    		 list.add(123);
    		 System.out.println(list.size());
    		
    	 }   
    }
    

    "aa"是字符串String引用类型,Dog是继承Object对象,123是通过自动拆箱和装箱机制包装成Integer来放入到

    list当中。

    LinkList底层实现是链表,插入删除较快、索引比较慢,不是线程安全的;

    ArrayList底层实现是数组,插入删除较慢、索引比较快,不是线程安全的;

    Vector底层实现也是数组,但是这个主要特点是线程安全的,效率略微低一些;

    态度决定高度,细节决定成败,
  • 相关阅读:
    将文件夹压缩为jar包——JAVA小工具
    android json解析及简单例子(转载)
    Eclipse RCP中获取Plugin/Bundle中文件资源的绝对路径(转载)
    右键菜单的过滤和启动(转载)
    eclipse rcp应用程序重启
    使用PrefUtil设置全局配置
    模拟器屏幕大小
    Android实现下载图片并保存到SD卡中
    PhoneGap与Jquery Mobile组合开发android应用的配置
    android WebView结合jQuery mobile之基础:整合篇
  • 原文地址:https://www.cnblogs.com/lxk2010012997/p/5260960.html
Copyright © 2011-2022 走看看