java:容器/集合(Map(HashMap,TreeMap))

HashMap:

*Map接口:采用是键值对的方式存放数据。无序
*常见的实现类:
*--HashMap:基于哈希表的 Map 接口的实现。
*常用的构造方法:
* HashMap()构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。
* HashMap(int initialCapacity) 构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap
*常用方法:
* put(K key, V value)在此映射中关联指定值与指定键。
* get(Object key) 返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。
* size() 返回此映射中的键-值映射关系数。
* remove(Object key) 从此映射中移除指定键的映射关系(如果存在)。
* clear() 从此映射中移除所有映射关系。
* containsKey(Object key) 如果此映射包含对于指定键的映射关系,则返回 true。
* containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则返回 true。
*----LinkedHashMap
*--Hashtable
*--TreeMap

import java.util.HashMap;
import java.util.Map;

public class TestHashMap {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<String,String>();
        //向容器中添加元素:以键值对的方式进行存放.
        map.put("jack", "成龙");
        map.put("jay", "周杰伦");
        map.put("eason", "陈奕迅");//添加元素
        //取:
//        map.remove("eason");//通过key移除元素
        System.out.println("是否包含eason:"+map.containsKey("eason"));
        System.out.println("是否包含成龙:"+map.containsValue("成龙"));
        System.out.println("容器中总共有"+map.size()+"个键值对元素");
        String name = map.get("jack");//根据key获取元素的值
        System.out.println(name);
        String name2 = map.get("jay");
        System.out.println(name2);

    }
}

HashMap取值的两种方法:

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

/**
 *Map的遍历
 *    Set<K> keySet() 返回此映射中所包含的键的 Set 视图。
 *  Set<Map.Entry<K,V>> entrySet() 返回此映射所包含的映射关系的 Set 视图。
 */
public class TestHashMap2 {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<String,String>();
        //向容器中添加元素:以键值对的方式进行存放.
        map.put("jack", "成龙");
        map.put("jay", "周杰伦");
        map.put("eason", "陈奕迅");//添加元素
        map.put("jack", "杰克");//键如果重复,将发生覆盖
        System.out.println(map);
        //方式1:先获取键的集合,通过键获取值
        Set<String> keySet = map.keySet();
        for (String key : keySet) {
            String value = map.get(key);
            System.out.println(key+"----"+value);
        }
        System.out.println("-------------------------------");
        //方式2:获取键值对的集合,然后从键值对获取键和值。(推荐)
        //Entry<String,String>:对键和值进行泛型,Set<Entry<String,String>>对Set集合中Entry(键值对)进行泛型
        Set<Entry<String,String>> entrySet = map.entrySet();
        for (Entry<String, String> entry : entrySet) {
            String key = entry.getKey();//获取键值对的键
            String value = entry.getValue();//获取键值对中值
            System.out.println(key+"****"+value);
        }
    }
}
时间: 2024-11-06 12:04:31

java:容器/集合(Map(HashMap,TreeMap))的相关文章

【Java心得总结七】Java容器下——Map

我将容器类库自己平时编程及看书的感受总结成了三篇博文,前两篇分别是:[Java心得总结五]Java容器上——容器初探和[Java心得总结六]Java容器中——Collection,第一篇从宏观整体的角度对Java中强大的容器类库做了一个简单总结而第二篇专门针对容器类库中的Collection部分进行了总结.这篇博文将对容器类库中的Map部分进行一个整理总结. 一.初识Map Map:一组成对的“键值对”对象,允许你使用键来查找值.(注:Map其实是将键与值形成的二元组按照一维线性的方式组织起来,

java容器---集合总结

思考为什么要引入容器这个概念? Java有多种方式保存对象(应该是对象的引用),例如使用数组时保存一组对象中的最有效的方式,如果你想保存一组基本类型的数据,也推荐使用这种方式,但大家知道数组是具有固定尺寸的,你必须事先知道你要需要多少个对象.但是在一般的情况中,你在写程序中并不知道将需要多少个对象,或者是否需要更加复杂的方式来存储对象,因此数组尺寸固定很不爽! 为了解决上述问题,引入了容器的概念.容器提供了完善的方法来保存对象,你可以使用这些工具来解决数量惊人的问题.Java容器类可以自动调整自

黑马程序员-java基础-集合Map

-----Java培训.Android培训.iOS培训..Net培训.期待与您交流! Map<K,V> Map<K,V>:Map存储的是键值对形式的元素,它的每一个元素,都是由键和值两个元素组成,键是不能有重复的,值是可以重复的,每一个键唯一指向一个值. Map体系 Map ——|hashtable: 底层是哈希表数据结构,不可以存入null键null值.该集合是线程同步的.效率低,已被HashMap替代 ——|HashMap: 底层是哈希表数据结构,允许使用 null 值和 nu

JAVA学习--集合Map的使用

* Map接口  *         |-----HashMap:Map的主要实现类  *         |-----LinkedHashMap:使用链表维护添加进Map中的顺序.故遍历Map时,是按添加的顺序遍历的. *         |-----TreeMap:按照添加进Map中的元素的key的指定属性进行排序.要求:key必须是同一个类的对象! *                 针对key:自然排序   vs 定制排序  *         |-----Hashtable:古老的实现

JAVA集合------Map (HashMap实现)

package java_util_map; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class MapTest01 { public static void main(String[] args) { /*  * Map是一个接口,HashMap是Map的一个实现类  

java集合Map&amp;HashMap

http://blog.csdn.net/u011240877/article/category/6447444/1 Map 接口提供了三种角度来分析 Map: KeySet:KeySet 是一个 Map 中键(key)的集合,以 Set 的形式保存,不允许重复,因此键存储的对象需要重写 equals() 和 hashCode() 方法.可以通过 map.keySet() 方法获得. 使用 keySet 遍历: Set set = map.keySet(); for (Object key :

Java之集合Map遍历

/** * 1.尝试Map<Boy,ArrayList<GirlFriend>> * 2.尝试Map<Student,HashSet<Book>> * 3.尝试ArrayList(你看过的电视剧)<ArrayList<Role人物>> * 4.假如有以下email数据"[email protected],[email protected],[email protected]"现需要把email中的用户部分和邮件地址

高并发第九弹:逃不掉的Map --&gt; HashMap,TreeMap,ConcurrentHashMap

平时大家都会经常使用到 Map,面试的时候又经常会遇到问Map的,其中主要就是 ConcurrentHashMap,在说ConcurrentHashMap.我们还是先看一下, 其他两个基础的 Map 类: HashMap  和 TreeMap HashMap: public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable,Serializable { // 这里有个很逗

Java——容器(Map)

[Map接口] 注:<1>HashMap底层实现是哈希表,TreeMap底层实现是二叉树. <2>键是索引,不能重复--表示不能equals,直接比较hashCode即可. (hashCode是int类型,比较起来效率高,直接equals效率慢) [常见方法] 注:在put方法中,新增加的value替换原来的数值,原来的数值作为对象返回,如果需要就用不需要就不用. [程序分析]

Map HashMap 排序 迭代循环 修改值

HashMap dgzhMap = Dict.getDict("dgzh"); Iterator it_d = dgzhMap.entrySet().iterator(); while (it_d.hasNext()) { Map.Entry entry_d = (Map.Entry) it_d.next(); Object key = entry_d.getKey(); Object value = entry_d.getValue(); value = value.toString