`
IT_nice
  • 浏览: 8778 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

黑马程序员_Map集合方法

Map 
阅读更多

------- android培训java培训、期待与您交流! ----------

 

 

Map集合. 

Collection

一次存储一个对象作为集合的一个元素... 

程序更复杂的需求. 

需要保存对象和对象之间的关系的. 如何保存? 

贪吃蛇游戏: 

配置信息: key  value 

              高           10

              宽  20

集合特殊,一次可以存储2个对象, 并保存这个对象之间一一对应的映射关系... 

key    value 

学号 <->学生

身份证号 <->人

查看文档:

该集合Map 和Collection 体系不同,一次存储2个对象.这两个对象在Map集合中称之为键(key)和值(value)

该集合key 不能重复(唯一的), 值和键之间的映射是一一对应的. 

Map 接口的方法实例:

 

package cn.itcast.c_map;

 

import java.util.Collection;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Map.Entry;

import java.util.Set;

 

public class MapDemo1 {

public static void main(String[] args) {

// testPut();

// testMapMethod();

 

Map<Integer, String> map = new HashMap<Integer, String>();

map.put(1001, "jack");

map.put(1002, "rose");

map.put(1003, "lucy");

map.put(1004, "lucy");

 

// 取出Map 集合中的所有元素. 

// 方式一: values 方法,取出Map 集合中所有的值(value)

// 缺点: 无法通过值取出对应的键, Map 集合的值是可以重复的... 

Collection<String>  coll=map.values();

Iterator<String> it = coll.iterator();

while(it.hasNext()){

System.out.println(it.next());

}

 

//方式二: keySet 方法, 取出Map 集合中所有的键(key)

// 缺点: 不面向对象. 

Set<Integer> set=map.keySet();

Iterator<Integer> sit = set.iterator();

while(sit.hasNext()){

int key=sit.next();

//System.out.println(key);

String value=map.get(key);

System.out.println(key+":"+value);

}

 

//方式三: entrySet 方法. 取出Map集合中所有的键值映射(Entry 对象)

Set<Entry<Integer,String>> entrySet=map.entrySet();

//获取Set 集合的迭代器. 该Set 集合存储的Entry 对象.  

Iterator<Entry<Integer,String>> eit=entrySet.iterator();

// 使用迭代器逐个取出该Set 集合中的每一个Entry对象. 

while(eit.hasNext()){

Entry<Integer,String> entry=eit.next();

// 使用Entry 对象的专业的get 方法,获取键和值. 

Integer key = entry.getKey();

String value=entry.getValue();

 

System.out.println(key+"#"+value);

}

 

 

}

 

public static void testMapMethod() {

// 1. 创建Map 集合

Map<Integer, String> map = new HashMap<Integer, String>();

map.put(1001, "jack");

map.put(1002, "rose");

map.put(1003, "lucy");

map.put(1004, "lucy");

 

// 2.putAll 批量增加.

Map<Integer, String> map1 = new HashMap<Integer, String>();

map1.put(100, "李磊");

map1.put(102, "韩梅");

map1.put(103, "张三");

 

map.putAll(map1);

System.out.println(map);

 

// 3. remove(Object key) 通过键,删除对应的键值对. 返回被删除的键对应的值.

System.out.println(map.remove(1002));

System.out.println(map);

 

// 4. 注意: remove 只能通过键删除对应的键值对.

System.out.println(map.remove("jack"));

System.out.println(map);

 

// 5. clear 清空集合.

// map.clear();

// System.out.println(map);

 

// 6. get(Object key) 通过key 获取key 对应的值.

// 6.1 注意, 只提供了通过key 获取值的方法,没有通过值获取key 的方法.

System.out.println(map.get(1001));

 

// 7.containsKey 检测集合是否包含指定的键.

 

// 8.containsValue 检测集合是否包含指定的值.

System.out.println(map.containsKey(1001));

System.out.println(map.containsKey(1009));

System.out.println(map.containsValue("jack"));

System.out.println(map.containsValue("张三丰"));

}

 

public static void testPut() {

// 1. 创建Map 集合

Map<Integer, String> map = new HashMap<Integer, String>();

 

// 2. 使用map 集合存储元素... 一次存储2个对象, 成为键(key)和值(value)

System.out.println(map.put(1001, "jack"));

System.out.println(map.put(1002, "rose"));

System.out.println(map.put(1003, "lucy"));

 

// 3. 打印集合

System.out.println(map);

System.out.println(map.size());

 

// 4. 所谓的一一映射,键唯一,键和值之间的映射是一对一的. 如果尝试往指定的键添加新值,新值覆盖旧值.

System.out.println(map.put(1001, "xxx"));

System.out.println(map);

}

}

 

 

 

 

package cn.itcast.c_map;

 

import java.util.Collection;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Map.Entry;

import java.util.Set;

 

public class MapTest {

 

/**

* @param args

*/

public static void main(String[] args) {

//test1();

test2();

 

 

}

public static void test2() {

//创建Map

Map<Integer, String> map = new HashMap<Integer,String>();

map.put(1001, "seek1");

map.put(1002, "seek2");

map.put(1003, "seek3");

map.put(1004, "seek4");

// 取出Map 集合中的所有元素. 

// 方式一: values 方法,取出Map 集合中所有的值(value)

// 缺点: 无法通过值取出对应的键, Map 集合的值是可以重复的... 

Collection<String> coll = map.values();

Iterator<String> it = coll.iterator();

while (it.hasNext()) {

sop(it.next());

 

}

 

//方式二: keySet 方法, 取出Map 集合中所有的键(key)

// 缺点: 不面向对象. 

Set<Integer> coll1 = map.keySet();

Iterator<Integer> it1 = coll1.iterator();

while (it1.hasNext()) {

int key = it1.next();

String value = map.get(key);

sop(key+" : "+value);

 

}

 

//方式三: entrySet 方法. 取出Map集合中所有的键值映射(Entry 对象)

Set<Entry<Integer, String>> set =map.entrySet();

//获取Set 集合的迭代器. 该Set 集合存储的Entry 对象.  

Iterator<Entry<Integer, String>> iit = set.iterator();

// 使用迭代器逐个取出该Set 集合中的每一个Entry对象. 

while (iit.hasNext()) {

Entry<Integer, String> s = iit.next();

Integer key = s.getKey();

String value = s.getValue();

sop(key+"----"+value);

 

}

}

public static void test1() {

//创建Map

Map<Integer, String> map = new HashMap<Integer,String>();

//put(K key, V value)添加元素

map.put(101, "jake1");

map.put(102, "jake2");

map.put(103, "jake3");

sop(map);

//putAll(Map<? extends K,? extends V> m) 批量添加

Map<Integer, String> map1 = new HashMap<Integer,String>();

map1.put(111, "rose1");

map1.put(112, "rose2");

map1.put(113, "rose3");

sop(map1);

map.putAll(map1);

sop(map);

//一对一,键是唯一的,如果给指定的键添加薪值,那么子新值会覆盖旧值。

map.put(101, "rose");

sop(map);

// remove(Object key) 通过键,删除对应的键值对. 返回被删除的键对应的值.

map.remove(111);

sop(map);

//clear 清空集合.

//map.clear();

//sop(map);

//get(Object key) 通过key 获取key 对应的值.

sop(map.get(113));

//containsKey 检测集合是否包含指定的键.

sop(map.containsKey(112));

//.containsValue 检测集合是否包含指定的值.

sop(map.containsValue("rose2"));

}

public static void sop(Object obj)

{

System.out.println(obj);

}

 

}

 

分享到:
评论

相关推荐

    黑马程序员_Java基础辅导班教程课件[第01期]第15天

    总结来说,《黑马程序员_Java基础辅导班教程课件[第01期]第15天》的内容可能涉及了Java语言的核心概念,包括面向对象编程、控制结构、异常处理、文件I/O、集合框架以及内存管理等。通过深入学习和实践这些知识点,...

    黑马程序员_Java基础辅导班教程课件[第01期]第14天

    【Java基础辅导班教程】- 黑马程序员 在编程世界中,Java是一种广泛应用的面向对象的编程语言,尤其在企业级应用开发中占据主导地位。"黑马程序员"作为知名的IT培训机构,提供了丰富的Java基础辅导课程,旨在帮助...

    黑马程序员_毕向东最新经典Java基础视频

    根据提供的文件信息,我们可以推断出这是一套由知名IT教育机构“黑马程序员”出品、由讲师毕向东主讲的Java基础教学视频。由于实际视频内容无法直接获取,本篇将依据标题、描述以及部分标签内容,综合分析并展开相关...

    黑马程序员_Java基础辅导班教程课件[第01期]第10天

    在"黑马程序员_Java基础辅导班教程课件[第01期]第10天"中,我们聚焦于Java编程语言的基础知识,这是一门面向初学者的课程,旨在帮助学员快速掌握Java的核心概念。通过这个阶段的学习,学员将能够理解并运用Java的...

    黑马程序员_历经5年锤炼(适合初学者入门的Java基础视频)(解压版)

    通过这套《黑马程序员_历经5年锤炼(适合初学者入门的Java基础视频)》,初学者能够系统地学习Java的基础知识,为后续深入学习和实战打下坚实的基础。Java作为一种强大的编程语言,在软件开发领域有着不可替代的地位,...

    黑马程序员Javase笔记

    Java是世界上最流行的编程语言之一,尤其在...总结来说,"黑马程序员Javase笔记"涵盖了Java的基础语法、内存管理、面向对象编程、集合框架以及泛型和Map等内容,这些都是成为一名合格Java开发者必须掌握的核心知识。

    黑马程序员-Java语言进阶-源码、教程笔记.zip

    day04_Map,斗地主案例 day05_异常,线程 day06_线程、同步 day07_等待与唤醒案例、线程池、Lambda表达式 day08_File类、递归 day09_字节流、字符流 day10_缓冲流、转换流、序列化流、Files day11_网络编程 day12_...

    黑马程序员入学面试题

    Java集合框架主要包括List、Set、Map三种集合类型,以及它们的各种实现类如ArrayList、LinkedList、HashSet、HashMap等,用于高效地存储和操作数据。 #### 19. 线程的创建方式,进程线程的理解 - **线程创建方式**...

    黑马程序员入学Java精华总结

    ### 黑马程序员入学Java精华总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是指通过编写计算机能够理解的指令来解决问题或完成特定任务的过程。这些指令通常被组织成算法,并使用某种编程语言实现。...

    黑马程序员Java函数式编程全套视频教程,Lambda表达式、Stream流、函数式编程一套全通关1

    本套黑马程序员的Java函数式编程视频教程涵盖了Lambda表达式、Stream流以及函数式编程的核心概念,旨在帮助学习者全面掌握这一现代编程技术。 Lambda表达式是Java 8引入的关键特性,它允许我们以更简洁的方式定义...

    Java-集合的例题 & 例题源码 & PPT教学文档(黑马程序员详细版).rar

    本资料包是黑马程序员提供的详细教程,涵盖了Java集合的例题、源码以及配套的PPT教学文档,旨在帮助学习者深入理解和掌握Java集合的使用。 首先,我们来探讨Java集合框架的基本概念。Java集合框架包括接口和实现类...

    黑马程序员java面试宝典 完整版PDF.rar

    《黑马程序员Java面试宝典》是一本专门为Java开发者准备的面试指南,包含了广泛而深入的Java技术知识,以及面试过程中可能会遇到的各种问题。这本书的完整版PDF提供了丰富的学习材料,帮助求职者提升自己的技术水平...

    集合-黑马程序员Java学习笔记

    本学习笔记由黑马程序员提供,旨在帮助初学者深入理解Java中的集合框架及其使用方法。 首先,我们来探讨“集合”的基本概念。在Java中,集合是一个对象容器,可以容纳多个元素,这些元素可以是任意类型的数据。Java...

    黑马程序员面试宝典(java)2018版

    《黑马程序员面试宝典(java)2018版》是一本专门为Java开发者准备的面试指南,涵盖了大量在面试过程中可能遇到的问题和知识点。这本宝典由黑马程序员机构精心编纂,汇集了近万名学员的实际面试经验,为求职者提供了...

    黑马程序员入学Java知识——精华总结.doc

    Java集合框架包括List、Set、Queue和Map等接口,以及ArrayList、HashSet、LinkedList等实现类,用于存储和操作对象。 15. **IO流**: Java的IO流系统支持数据的输入和输出,包括字符流和字节流,以及缓冲区、转换...

    黑马程序员java基础试题、笔记

    这其中包括了对Java集合框架的理解(List、Set、Map接口及其实现类)、异常处理、多线程编程、IO流、反射、设计模式等进阶主题。 黑马程序员面试技巧则提供了面试策略和技巧,如如何清晰地表达思路,怎样在短时间内...

    黑马程序员java培训就业班笔记集合体系总结.docx

    集合框架的核心接口包括Collection和Map,它们分别代表单一对象的集合和键值对的集合。 1. Collection接口: Collection是所有单值集合的父接口,包括List和Set子接口。它的主要方法有: - `add(E element)`: 向...

    黑马程序员JAVA面试宝典2018年5月最新版

    《黑马程序员JAVA面试宝典2018年5月最新版》是一本专门为Java开发者准备的面试指南,它集合了2018年5月时最新的面试知识点和业界趋势,旨在帮助Java程序员在求职过程中更好地应对各类技术面试。这本书可能涵盖了Java...

    黑马程序员入学Java知识

    ### 黑马程序员入学Java知识 #### Java概述与基础知识 1. **何为编程?** - 编程是通过特定的计算机语言来编写指令,让计算机执行一系列任务的过程。 2. **Java语言概述,历史、特点** - **概述**:Java是一种...

    黑马程序员入学Java知识——精华总结

    "黑马程序员入学Java知识——精华总结"这份文档很可能包含了Java编程的基础到进阶的知识点,旨在帮助初学者快速掌握Java的核心概念和技能。 1. **Java基础知识**:Java是一种面向对象的语言,它的基础包括语法、...

Global site tag (gtag.js) - Google Analytics