list set map概要

java.util.Collection集合接口,其中list,set继承collection,map没有继承接口

Iterator接口:遍历集合和map 
* (1)使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。
* 注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
*
* (2) 使用next()获得序列中的下一个元素。
*
* (3) 使用hasNext()检查序列中是否还有元素。
*
* (4) 使用remove()将迭代器新返回的元素删除。 ListIterator只能迭代list,增加了add,set等方法

  

List:有序,可以重复,允许为空的列表

  add():添加元素

  get():取出元素

  addAll(Object obj):添加集合对象中的所有元素

实现类:

    ArrayList:底层以数组为基本结构,所以查找元素很快,但插入,删除元素很慢

    LinkedList:底层以双向链表为基本结构,所以插入,删除元素很快,但查找元素很慢

set:无序,不可以重复,允许有一个null

  add():添加元素

  没有get()方法,不能取出单独的元素

  addAll(Object obj):添加集合对象中的所有元素

实现类:

    HashSet():add()底层利用了hashmap的put()方法,所以每次用hashcode与equal()方法判断值是否重复,如果重复则返回false

    底层代码:

        public boolean add(E e) {
          return map.put(e, PRESENT)==null;
        }

    TreeSet():因为set集合是无序的,所以在iterator迭代的时候,不能正元素的顺序,所以出现了TreeSet();可以默认排序,也可以通现java.util.Comparator<Type>接口来自定义排序方式。

      (set可以有序吗,利用treeSet()实现类)

    LinkHashSet():跟hashset很相似,继承了父类hashset,但是可以维护顺序

map:键值对形式,键不能为重复,值可以重复;hashmap允许键值为null,但hashtable不允许为键值为null(底层利用散列算法查找,所以在集合中查找元素最快)

  put():添加元素;

  get():取出元素;

  keyValue():取出所有的键;

  Value():取出所有的值;

 实现类:hashmap():hashmap可以接收空值,HashMap是非synchronized(同步)的,意味着是线程非安全的,多个线程不能共享hashmap

     hashtable():hashtable不能接收null值(键值都不为空),hashtable是同步的,意味着是线程安全的,多个线程能共享hashtable  

      另一个区别是HashMap的迭代器(Iterator)是fail-fast迭代器,而Hashtable的enumerator迭代器不是fail-fast的。
      * 所以当有其它线程改变了HashMap的结构(增加或者移除元素),将会抛出ConcurrentModificationException,
      * 但迭代器本身的remove()方法移除元素则不会抛出ConcurrentModificationException异常。但这并不是一个一定发生的行为,
      * 要看JVM。这条同样也是Enumeration和Iterator的区别。

 总结:由于hashtable是线程安全的,所以在单线程下它比hashmap慢,如果不需要同步,只是单一线程,那么使用hashmap性能要好些

 如何让hashmap同步:Map m = Collections.synchronizeMap(hashMap);

时间: 2024-12-28 06:55:28

list set map概要的相关文章

Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)

http://www.cnblogs.com/skywang12345/p/3311126.html 概要 学完了Map的全部内容,我们再回头开开Map的框架图. 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3311126 第1部分 Map概括 (01) Map

【转】Java 集合系列09之 Map架构

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

Java 集合系列09之 Map架构

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

Java 集合系列 08 Map架构

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列 05 Vector详细介绍(源码解析)和使用示例 Java 集合系列 06 Stack详细介绍(源码解析)和使用示例 Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和

java集合之Map

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

Java:Map总结

概要 学完了Map的全部内容,我们再回头开开Map的框架图. 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3311126 第1部分 Map概括 (01) Map 是“键值对”映射的抽象接口.(02) AbstractMap 实现了Map中的绝大部分函数接口.它减少

Spring MVC 学习总结(一)——MVC概要与环境配置

一.MVC概要 MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范,用一种将业务逻辑.数据.显示分离的方法组织代码,MVC主要作用是降低了视图与业务逻辑间的双向偶合.MVC不是一种设计模式,MVC是一种架构模式.当然不同的MVC存在差异. 在web早期的开发中,通常采用的都是Model1.Model1中,如图所示主要分为两层,视图层和模型层.Model2把一个项目分成三部分,包括视图.控制.模型.这样不仅提高的代码的复用率与项目的扩展性,且大大

Android笔记十.List+Set+Map

List+Set+Map Jiangdg_VIP http://blog.csdn.net/u012637501 一.Java定义集合接口 Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含一组接口,类的体系结构. Java集合框架的基本接口/类层次结构: java.util.Collection [I] +--java.util.List [I] +--java.util.ArrayList [C] +--java.util.LinkedLi

Java map 详解 - 用法、遍历、排序、常用API等

尊重原创:http://www.cnblogs.com/lzq198754/p/5780165.html 概要: java.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 List 和 Map. Map 提供了一个更通用的元素存储方法.Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值. 本文主要介绍java map的初始化.用法.map的四种常用的遍历方式.map的排序以及常用api. | |目录 1Map用法 ·类