1.所有的集合的父类都是Collection的接口

2.Set List Map 区别

A  在Set里面:无法添加元素的顺序,所以Set里面的元素不能重复

B  在List中:有索引号,类似于数组,里面的元素可以重复,可以记住添加的顺序

C  在Map里面:每一项都由一个键值对组成 (key,value)

3.iterator接口(迭代器,遍历器): 该接口也是Java集合框架的成员,该接口主要用于遍历(迭代访问)Collection中的元素

主要是用三个方法:

    A      boolean hasNext():如果被迭代的集合元素还没有被遍历,则返回true.

B      Object next():返回集合里的下一个元素    element,Cursor.

C      void remove():删除集合里上一次next方法返回的元素。

4.Vector和ArrayList的使用区别

–  Vector类中的所有方法都是线程同步synchronized的,多个线程共享访问同一个Vector对象将是安全的。

   –  ArrayList类中的所有方法都是非同步的,不安全,多线程访问同一个ArrayList对象时,需要自己处理线程同步的问题。

  –  当只有一个线程,或者多线程访问时能确保线程安全,使用ArrayList比使用Vector效率高,因为不用额外的开销检查监视器。

 
 5.ArrayList,Vector和LinkedList区别
         -  LinkedList与ArrayList、Vector实现的机制完全不同.
         -  ArrayList、Vector内部以数组的形式来保存集合中的元素,因此随机访问集合元素上有较好的性能;
         -  而LinkedList内部以链表的形式来保存集合中的元素,因此随机访问集合元素时性能较差,但在插入、删除元素时性能非常出色。

 
 
 6.Hashtable类:

-  不仅可以像Vector一样动态存储一系列对象,而且为每个被存储的对象(称为value)都用另一个对象(称为key)关联,可以快速的检索数据。

存储:Hashtable.put(Object key, Object value)

取出:Hashtable.get(Object key)

*注意:key和value都为非空对象,如果重复put,则为修改value

7.Hashtable、HashMap区别

-  1.Hashtable继承自Dictionary类,HashMap是Map接口的一个实现类(继承自AbstractMap抽象类)

    – 2.在HashMap中,null可以作为键,这样的键只能有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()方法来判断。而在Hashtable中不允许有null健和null值。

-  3.Hashtable比HashMap慢。Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。

8.Set接口

-   Set不允许包含相同的元素(如果有重复会被覆盖),Set判断两个对象是否相同需要采用equals方法进行判断。

HashSet是其实现类,有其以下特点:

1.不能保证元素的排列顺序,顺序有可能会发生变化,它会按Hash顺序进行排列。

2.HashSet不是线程同步的,必须通过手动的方式进行同步

3.集合元素可以是空值。

HashSet当存入一个元素时,会调用该元素的hashCode()方法来得到该元素的hashCode值,之后以该值的顺序进行存储.所以HashSet集合判断两个元素相等的标准是两个对象通过equals方法比较相等,并且两个对象的hashCode()方法返回值也相等。

 
 

Java中ArrayList,Vector,LinkedList,HashMap,HashTable,HashSet对比及总结的更多相关文章

  1. Java基础系列 - JAVA集合ArrayList,Vector,HashMap,HashTable等使用

    package com.test4; import java.util.*; /** * JAVA集合ArrayList,Vector,HashMap,HashTable等使用 */ public c ...

  2. Java中ArrayList与LinkedList的区别

    Java中ArrayList与LinkedList的区别 一般大家都知道ArrayList和LinkedList的区别: 1. ArrayList的实现是基于数组,LinkedList的实现是基于双向 ...

  3. Java中arraylist和linkedlist源代码分析与性能比較

    Java中arraylist和linkedlist源代码分析与性能比較 1,简单介绍 在java开发中比較经常使用的数据结构是arraylist和linkedlist,本文主要从源代码角度分析arra ...

  4. java中ArrayList 和 LinkedList 有什么区别

    转: java中ArrayList 和 LinkedList 有什么区别 ArrayList和LinkedList都实现了List接口,有以下的不同点:1.ArrayList是基于索引的数据接口,它的 ...

  5. Java ArrayList Vector LinkedList Stack Hashtable等的差别与用法(转)

    ArrayList 和Vector是采取数组体式格式存储数据,此数组元素数大于实际存储的数据以便增长和插入元素,都容许直接序号索引元素,然则插入数据要设计到数组元素移动等内存操纵,所以索引数据快插入数 ...

  6. java中ArrayList、LinkedList、Vector的区别

    ArrayList.LinkedList.Vector这三个类都实现了List接口. ArrayList是一个可以处理变长数组的类型,可以存放任意类型的对象.ArrayList的所有方法都是默认在单一 ...

  7. Java中ArrayList和LinkedList区别、ArrayList和Vector的区别

    一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,Ar ...

  8. Java中ArrayList和LinkedList差别

    一般大家都知道ArrayList和LinkedList的大致差别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构.  2.对于随机訪问get和set.A ...

  9. JAVA中ArrayList与LinkedList的区别以及对应List使用foreach与使用下标遍历的效率问题

    近期在做一个对接京东的电商平台,所以对各个地方的效率考虑的比较多,今天深挖了一下ArrayList与LinkedList的区别以及对应List使用foreach与使用下标遍历的效率问题,首先说一下两种 ...

随机推荐

  1. linux下keepalived 安装配置

    keepalived是一个类似于layer3, 4 & 7交换机制的软件,也就是我们平时说的第3层.第4层和第7层交换.Keepalived的作用是检测web服务器的状态,如果有一台web服务 ...

  2. 快速排序OC、Swift版源码

    前言: 你要问我学学算法在工作当中有什么用,说实话,当达不到那个地步的时候,可能我们不能直接的感觉到它的用处!你就抱着这样一个心态,当一些APP中涉及到算法的时候我不想给其他人画界面!公司的项目也是暂 ...

  3. Token在android中的使用

    首先Token是一个怎么样的东西,Token存在的意义又在哪里?学过php或是其他web开发的人都知道一个东西叫session和cookie,这些东西可以在服务器或是本地保存一些东西,比如说登录状态, ...

  4. 第24篇 js小知识和“坑”

    前面说了说了js的相关知识,基本上除了语法外,把项目常用的知识做了一个梳理,现在说下js的其它方面的知识,这些知识不成体系,属于不理解对于一般开发没什么太多影响,但如果理解清楚,可以更好去开发. js ...

  5. JavaScript中的文档模式和严格模式

    JavaScript中的文档模式和严格模式 语法模式有普通模式和严格模式两种 普通模式:正常的JavaScript语法拼写以及代码编写(相对于严格模式存在着语法上的不严谨),尽可能的识别错误以及不规范 ...

  6. mybatis系列笔记(3)---SqlMapConfig.xml解析

    SqlMapConfig.xml SqlMapConfig.xml是Mybatis的全局配置参数,关于他的具体用的有专门的MyBatis - API文档,这里面讲的非常清楚,所以我这里就挑几个讲下: ...

  7. Robot Framework中经常用的第三方库的安装方法

    pip升级:python -m pip install --upgrade pip 一.安装robotframework-selenium2library,相当于python中的selenium    ...

  8. 搭建hibernate环境

    Hibernate概述什么是框架1 写程序,使用框架之后,帮我们实现一部分功能,使用框架好处,少写一部分代码实现功能 什么是hibernate框架(重点)1 hibernate框架应用在javaee三 ...

  9. 【js】基本类型和引用类型的区别

    1.保存方式:(一脸懵逼???) 基本类型是按值访问的,可以在变量的生命周期改变它,但是它是储存在哪里的呢?在浏览器缓存吗?[执行环境中定义的所有变量和函数都存储在执行环境的变量对象里,变量对象我们编 ...

  10. Macaca 自动化框架 [Python 系列]

    介绍 Macaca是一套完整的自动化测试解决方案,基于node.js开发.由阿里巴巴公司开源: 地址:http://macacajs.github.io/macaca/ 特点: 同时支持PC端和移动端 ...