java 集合----Map、Collection_java

接口:红色;实现类:黑色字体

一、 Collection集合 

Collection

 |_____Set(HashSet)

 |      |_____SortedSet(TreeSet)

 |_____List(ArrayList,LinkedList,Vector )

 

Collection:集合层次中的根接口,JDK没有提供这个接口的实现类。

List: 有序(按照放入的顺序)、可以重复、有下标。

Set:无序、不可以重复、无下标。

SortedSet:是Set接口的子接口,SortedSet中的元素是有序的(按字母升序)。

          通过 Comparable接口的compareTo方法,实现元素是有序的。放入的元素都必须实现 Comparable 接口(或者被指定的Comparator 所接受)。

 

List接口的实现类的区别

ArrayList :本质上是一个数组。线程不安全。查询(get/set)快,增删(add/remove)慢。

LinkedList: 本质上是一个双向链表。线程不安全。查询(get/set)慢,增删(add/remove)快。

Vector :和ArrayList几乎是完全相同的,唯一的区别在于Vector是同步类(synchronized),是线程安全的。

 

二、Map集合

Map(HashMap,Hashtable)

 |_____SortedMap(TreeMap)

 

Map:存储的是key-value对,不能包含重复的key,可以有重复的value。

SortedMap:Map的子接口SortedMap是一个按升序排列key的Map。

HashMapHashtableTreeMap的区别

HashMap :线程不安全。key和value都可以是null。元素是无序的。底层是哈希表数据结构。

Hashtable:线程安全。key和value都不可以是null。元素是无序的。底层是哈希表数据结构。

TreeMap:线程不安全。key和value都不可以是null。元素是有序的(按字母升序)。底层是二叉树数据结构。

 

三、MapkeySet 的值如何实现不重复

 

Map 放相同的key,之后的覆盖之前的

Map map=new  HashMap();

map.put(“name”,”张三”);

map.put(“name”,”王五”);------有效,覆盖之前的

Set放相同的元素时,第一个是有效的,之后的不会被放入

Set set=new HashSet();

set.add(“111”);---有效

set.add(“222”);----判断已有,不会放入

1HashMap put HashSet add

 由于 HashSet 的 add() 方法添加集合元素时实际上转变为调用 HashMap 的 put() 方法来添加 key-value 对。HashMap 的 put() 方法首先调用.hashCode() 判断返回值相等,如果返回值相等则再通过 equals 比较也返回 true,最终认为key对象是相等的已经在HashMap中存在了。

2TreeMap put  TreeSet add

TreeMap中调用put方法添加键值时,调用对象的它的 compareTo(或 compare)方法对所有键进行比较,此方法饭回0,则认为两个键就是相等的。

TreeSet添加元素的时候,调用compareTo或compare方法来定位元素的位置,也就是返回compareTo或compare返回0则认为是同一个位置的元素,即相同元素

时间: 2024-10-15 21:43:13

java 集合----Map、Collection_java的相关文章

java集合map取key使用示例 java遍历map_java

复制代码 代码如下: for (Iterator i = keys.iterator(); i.hasNext()        {           String key = (String) i.next();           String value = (String) map.get(key);           text+=key + " = " + value;       } 复制代码 代码如下: <span style="border-coll

java集合(list,set,map)

集合 集合与数组 集合中接口和类的关系 层次图 listsetmap对比 list有序可重复 ArrayList add操作 Remove操作 Get操作 LinkedList Add元素 Remove元素 Get元素 遍历 Set无序不能重复 HashSet 构造方法 方法 TreeSet 遍历和list相似 Map键值对键唯一值不唯一 HashMap 方法 Hashtable LinkedHashMap TreeMap 遍历 总结 Vector和ArrayList arraylist和lin

JAVA集合框架之Map接口实现类

java.util.HashMap<K,V> 基于哈希表的 Map 接口的实现.此实现提供所有可选的映射操作,并允许使用 null 值和 null 键.(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同.)此类不保证映射的顺序,特别是它不保证该顺序恒久不变. 此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能.迭代 collection 视图所需的时间与 HashMap 实例的"容量"(桶的

java集合框架07——Map架构与源码分析

前几节我们对Collection以及Collection中的List部分进行了分析,Collection中还有个Set,由于Set是基于Map实现的,所以这里我们先分析Map,后面章节再继续学习Set.首先我们看下Map架构图:         从图中可以看出:         1. Map是一个接口,Map中存储的内容是键值对(key-value).         2. 为了方便,我们抽象出AbstractMap类来让其他类继承,该类实现了Map中的大部分API,其他Map的具体实现就可以通

Java集合框架 Map和泛型

Map集合 1.特点:该集合存储键值对.一对一对往里存.而且要保证键的唯一性. 2.常用方法: 1.添加:v  put(k key , v value); 将数据以键值对的方式存进集合中. void putAll(Map<? extends k,? extends v> m) ;从指定映射中将所有映射关系复制到此映射中 2.删除:void clear();  清空集合 v remove(Object key); 将集合中的元素以键的形式移除. 3.判断:containsKey(Object k

java的Map集合中按value值进行排序输出的实例代码_java

java的Map集合中按value值进行排序输出的实例代码 import java.util.Arrays; import java.util.Comparator; import java.util.HashMap; import java.util.Map; import java.util.Set; public class Test { public static void main(String[] args) { Map<String ,Integer> map = new Has

Java集合Set、List、Map的遍历方法_java

本文实例讲述了Java集合Set.List.Map的遍历方法,分享给大家供大家参考. 具体方法如下: package com.shellway.javase; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.uti

Java遍历Map方法集合实例

遍历Map方法分为两类: 一类是基于map的Entry:map.entrySet(); 一类是基于map的key:map.keySet() 而每一类都有两种遍历方式: a.利用迭代器 iterator: b.利用for-each循环: 第一种方法是根据map的keyset()方法来获取key的set集合,然后遍历map取得value的值  代码如下 复制代码 import java.util.HashMap; import java.util.Iterator; import java.util

Java实现Map集合二级联动示例_java

Map集合可以保存键值映射关系,这非常适合本实例所需要的数据结构,所有省份信息可以保存为Map集合的键,而每个键可以保存对应的城市信息,本实例就是利用Map集合实现了省市级联选择框,当选择省份信息时,将改变城市下拉选择框对应的内容. 思路分析: 1. 创建全国(省,直辖市,自治区)映射集合,即LinkedHashMap对象,使用Map接口的put()方法向集合中添加指定的省与城市的映射关系,其中值为String型一维数组. 代码如下: CityMap.java 复制代码 代码如下: import