c# convert to java ,vector hashtable过时?

vector hashtable过时?

在用JAVA集合时,IDE提示

vector 以及hashtable被arraylist ,hashmap替代,而前者又是线程同步的,不知道为什么?是效率差了的原因?

Map 
|--Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。jdk1.0.效率低。 
|--HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代,jdk1.2.效率高。 
|--TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行排序。

遗留容器类,还有数组。

多线程时使用java.util.concurrent包的类

时间: 2024-10-29 19:06:46

c# convert to java ,vector hashtable过时?的相关文章

JAVA的Hashtable在遍历时的迭代器线程问题

这篇博客主要讲什么 Hashtable及其内部类的部分源码分析 Hashtable在遍历时的java.util.ConcurrentModificationException异常的来由和解决 单机在内存中缓存数据并定期清除过期缓存的简单实现 事情的起因 工作中需要在某个业务类中设置一个将一些对象缓存在内存中的一个缓存机制(单机).于是有了以下类似结构的实现: 1 package org.cnblog.test; 2 3 import java.util.Hashtable; 4 import j

Java之Hashtable、HashMap及Properties

HashTable继承于比较古老的Dictionary,而HashMap是接口Map的实现. HashMap是HashTable的一个轻量级实现,HashMap不是线程安全的,而HashTable是线程安全的. HashMap允许key或者value为null,而HashTable是不允许的. 在效率方面:HashMap的效率略过于HashTable. 而Properties是HashTable的子类,不过Properties添加了两个方法,load()和store()可以直接导入或者将映射写入

Java 集合Hashtable源码深入解析

概要 前面,我们已经系统的对List进行了学习.接下来,我们先学习Map,然后再学习Set:因为Set的实现类都是基于Map来实现的(如,HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的). 首先,我们看看Map架构.如上图:(01) Map 是映射接口,Map中存储的内容是键值对(key-value).(02) AbstractMap 是继承于Map的抽象类,它实现了Map中的大部分API.其它Map的实现类可以通过继承AbstractMap来减少重复编码.(

Java Vector解析与ArrayList区别

Vector继承了AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable,和ArrayList一致 Vector大致与ArrayList一致,但是有以下几点区别 1 初始化 默认无参构造方法 Vector会初始化一个长度为10的数组,ArrayList在具体调用时再创建数组. 比较之下,ArrayList延迟化加载更节省空间 2 扩容 (grow()) Vector当增量为0时,扩充为原来大小的2倍,当增量大于0时,

java.util.HashMap和java.util.HashTable (JDK1.8)【转】

一.java.util.HashMap 1.1 java.util.HashMap 综述 java.util.HashMap继承结构如下图 HashMap是非线程安全的,key和value都支持null HashMap的节点是链表,节点的equals比较的是节点的key和value内容是否相等. 1 static class Node<K,V> implements Map.Entry<K,V> { 2 final int hash; 3 final K key; 4 V valu

Java中HashTable和HashMap的区别

在Java中,HashTable和HashMap都是哈希表,那么它们有什么区别呢? 1.它们所继承的类不一样. HashTable和HashMap都实现了Map接口,但是它们所继承的类时不同的.HashTable继承了Dictionary类(Dictionary类已经过时),而HashMap则是继承了AbstractMap类.我们来看看它们的函数声明. HashTable声明: 1 public class Hashtable<K,V>extends Dictionary<K,V>

java遍历hashTable

//获取key值 Enumeration k = lovResults.keys();while(k.hasMoreElements()){ System.out.println(k.nextElement());} //获取VALUE值 Enumeration e = lovResults.elements(); while(e.hasMoreElements()){ System.out.println(e.nextElement()); } Java中如何遍历Map对象的4种方法 Java

java该HashTable,HashMap和HashSet

同一时候我们也对HashSet和HashMap的核心方法hashcode进行了具体解释,见<探索equals()和hashCode()方法>. 万事俱备,那么以下我们就对基于hash算法的三个集合HashTable,HashSet和HashMap具体解释. 本文文件夹: 1. HashTable和HashMap的差别 2. HashSet和HashMap的差别 3. HashMap,HashSet工作原理 4. HashSet工作原理 5. 常见问题 1. HashTable和HashMap的

Java Vector 类

Vector类实现了一个动态数组.和ArrayList和相似,但是两者是不同的: Vector是同步访问的. Vector包含了许多传统的方法,这些方法不属于集合框架. Vector主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组的情况. Vector类支持4种构造方法. 第一种构造方法创建一个默认的向量,默认大小为10: Vector() 第二种构造方法创建指定大小的向量. Vector(int size) 第三种构造方法创建指定大小的向量,并且增量用incr指定. 增量表示向