• Java 中 List、HashTable、HashMap、TreeMap


    List


    添加方法(添加到末尾):.add(str)

         .add(index, str) 将新的str 值存入 index索引,原来索引index 和值往后移一位。

    根据索引将元素值改变:.set(index,str)

    根据索引获取元素: .get(index)

    得到list 中元素数的和  .size()

    根据索引删除元素: .remove(index)

    根据元素对象删除内容:.remove(str)

    根据元素从前后往查找: .indexOf(str)    找到即返回索引,未找到返回 -1

    根据元素从后往前查找: .lastIndexOf(str)   找到即返回索引,未找到返回 -1

    list 是否包含某个元素 .contains(str)  ,返回true 或 false

    .equals() 和 .hashcode()

    equals 判断两个对象元素是否相同,

    ArrayList 和 LinkedList

    相同点:  都是List接口实现类 ;线程不安全; 

    异:

       ArrayList 是线性表,是基于动态数组实现,查询快,增删慢; 可自动扩容;

       LinkedList 链表数据实现,查询慢,增删快;

    HashTabe 和 HashMap

    添加方法 .put(index,str)

    根据索引获取元素:.get(index)

     

    相同点:  都是Map接口实现类 ;

    异:

       1. 线程安全性不同: HashTable 是线程安全;添加里synchronized 关键字, HashMap 是非线程安全。

       2. 存储不同: HashTable 不允许null 作为key;  HashMap 允许null 作为key 值,且总是存储在数组第一个节点。

       3. 继承父类不同:HashTale 继承Dictionary 抽象类;  HashMap 继承类AbtractMap。

       4. hash值不同: HashTable 直接使用对象的hashCode; HashMap 重新计算hash值。

       5. 提供contains方法: HashTable 保留了contains,containsKey 和 containsValue  三个方法;  HashMap去除了contains 方法,改成containsKey 和 containsValue。

    TreeMap  根据key, 从小到大自然排序

    List<String> listOne = new ArrayList<String>();
    listOne.add("apple");
    listOne.add("pear");
    listOne.add("banana");
    listOne.add("peach");
    listOne.add("apple");
    System.out.println("banana"+listOne.indexOf("apple"));//从前往后搜索
    System.out.println("banana"+listOne.lastIndexOf("apple"));//从 后往前搜索

    for(int i=0;i<listOne.size();i++){
    System.out.println("value:"+listOne.get(i));
    }
    Iterator it = listOne.iterator();//返回listOne 集合对象
    while (it.hasNext()){
    System.out.println("==value:"+it.next()); //ArrayList从前往后输出值
    }

    Hashtable<Integer,String> ht=new Hashtable<Integer,String>();

    ht.put(1,"Anna");
    ht.put(2,"Bill");
    ht.put(3,"Cindy");
    ht.put(4,"Dell");
    ht.put(5,"Felex");
    ht.put(6,"Elsa");
    Iterator it1 = ht.values().iterator();//获取值的集合对象
    while (it1.hasNext()){
    System.out.println("value:"+it1.next()); //从后往前输出
    }

    Iterator itKey= ht.keySet().iterator();//获取健的集合对象
    while (itKey.hasNext()){
    System.out.println("====key:"+itKey.next()); //从后往前输出
    }
  • 相关阅读:
    UML简单熟悉
    Java设计模式--单例模式
    MyEclipse2014安装图解
    让Win10显示系统中隐藏的文件夹
    Ping命令
    C语言学习
    技术学习论坛地址收集
    聊聊JVM的年轻代(转)
    深入理解JVM--JVM垃圾回收机制(转)
    JVM调优浅谈(转)
  • 原文地址:https://www.cnblogs.com/zhangxiya/p/15403350.html
Copyright © 2020-2023  润新知