黑马程序员——集合(map)

package com.yang.ex2;

import java.util.Collection;

import java.util.HashMap;

import java.util.Map;

/*集合Map:该集合存储键值对,一对一对的往里面存,而且要保证键的唯一性

* 1.添加

* put(K key ,V value)

* putAll

* 2.删除

* clear()

* remove(Object key)

* 3.判断

* containsKey/Value

* boolean

* isEmpty()

* 4.获取

* get(Object key)

* size()

* values()

*

* entrySet

* KeySet

*

* Map:

*  ----HashTable:底层是哈希表数据结构,不可以存入null作为键 null作为值的结构,该集合是线程同步的jdl 1.0效率低

*  ----HashMap:底层是哈希表数据结构,允许使用Null键null值,该集合是不同步的。jdk1.2 效率高

*  ----TreeMap:底层是二叉树数据结构,线程不同步。可以用于给Map集合中的键进行排序

*

* Set底层调用的都是使用Map的集合

*

* */

public class Demo {

public static void main(String[] args) {

// TODO Auto-generated method stub

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

// 添加元素

System.out.println(map.put("01", "zhangsan1"));

System.out.println(map.put("01", "wangwu"));

//新添加的值 吧老值给替代了。如果出现相同得键,那么后添加得值会替代原有的值

//并且put方法会返还被覆盖的值

map.put("01", "zhangsan1");

map.put("02", "zhangsan2");

map.put("03", "zhangsan3");

map.put("04", "zhangsan4");

System.out.println(map.containsKey("02"));

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

System.out.println(map);

System.out.println(map.get("03"));

map.put("04", null);

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

//可以通过get方法的返回值来判断,一个键是否存在,通过返回null来判断

//获取map集合中,所有的值。

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

System.out.println(collection);

System.out.println(map);

}

}

package com.yang.ex2;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

import javax.print.attribute.standard.Media;

//map集合的两种取出的方式

//1.  Set<key> keySet: 将map中所有的键存入到了Set集合。因为Set集合具备迭代器,所有可以通过迭代方式可以取出所有的键

//再通过get方法获取每一个键对于得值

//Map集合的取出原理:将map集合转成set集合,在通过迭代器取出

//2. Set<Map.Entry<k,v>>  entrySet: 将map集合中的映射关系存入到set集合中

//   而这种数据关系就是map.Entry

public class Demo2 {

public static void main(String[] args) {

// TODO Auto-generated method stub

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

map.put("01", "zhangsan1");

map.put("02", "zhangsan2");

map.put("03", "zhangsan3");

map.put("04", "zhangsan4");

// 將Map集合中的 映射关系取出,存入到Set集合中

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

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

while (iterator.hasNext()) {

Map.Entry<String, String> entry = iterator.next();

String key = entry.getKey();

String valueString = entry.getValue();

System.out.println(key + valueString);

}

//那么关系对象Map.Entry获取到后,就可以通过Map.Entry中的getKey和

//getValue方法获取关系中的键和值

// 先获取map集合中的所有键的set集合。keySet();

// Set<String> keySet = map.keySet();

// 有了Set集合,就可以获取其迭代器。

// Iterable<String> iterable = keySet.iterator();

// while (iterable.hashNext()) {

// String key = iterable.next();

// 有了键,就可以通过map集合 获取其对应的值

// String value = map.get(key);

// System.out.println(key);

// }

}

//其实Map.Entry 其实Entry也是一个接口 它是Map接口中的一个内部接口

//静态 并且是公共的

}

package com.yang.ex2;

import java.util.HashMap;

import java.util.Iterator;

/*map扩展知识

* map集合被使用是因为具备映射关系

* “yureban” "01" "zhangsan"

* "yureban" "02" "lisi"

* "jiuyeban" "01"  "wangwu"

* "jiuyeban" "02" "zhaosi"

*

* 一個学校有多个教室,每个教室有多个名称

*

*

* */

public class Demo3 {

public static void main(String[] args) {

// TODO Auto-generated method stub

HashMap<String, String> yureHashMap=new HashMap<String, String>();

yureHashMap.put("01", "zhangsan");

yureHashMap.put("02", "lisi");

HashMap<String, String> jiuyeHashMap=new HashMap<String, String>();

yureHashMap.put("01", "wangwu");

yureHashMap.put("02", "zhaosi");

HashMap<String,HashMap<String,String>> czbk =new HashMap<String,HashMap<String,String>>();

czbk.put("yureban", yureHashMap);

czbk.put("jiuyeban", jiuyeHashMap);

yureHashMap.put("01", "zhangsan");

yureHashMap.put("02", "lisi");

//遍历czbk集合,获取所有教室

Iterator<String> iterator=czbk.keySet().iterator();

while (iterator.hasNext()) {

String roomName =  iterator.next();

HashMap<String, String> room=czbk.get(roomName);

System.out.println(roomName);

System.err.println(room);

}

//getStudentInfo(yureHashMap);

}

public static void getStudentInfo(HashMap<String,String> roomMap) {

Iterator<String> iterator=roomMap.keySet().iterator();

while (iterator.hasNext()) {

String id =  iterator.next();

String name=roomMap.get(id);

System.out.println(id+name);

}

}

}

详情请查看:http://edu.csdn.net/heima

时间: 2024-12-21 15:05:46

黑马程序员——集合(map)的相关文章

黑马程序员——集合基础知识(Map)

Map概念 要同时存储两个元素,他们之间有映射关系,每个键不能重复,每个键只能映射到一个值. 存储键值对,并且键是唯一的. 1.添加. put()如果添加的键原来有值,后添加的值会覆盖前面的值,并返回之前的值. 2.删除 remove()按键删除. 3.判断 4.获取 get(object key) size() value()拿值value返回的是值的集合... HashTable 底层是哈西数据结构,不可以存入null键null值,线程同步. HashMap 底层是哈西表数据结构,允许使用n

黑马程序员-----集合框架类(三) Map集合

黑马程序员-----集合框架类(三) Map集合 1.1 Map集合:该集合存储键值对.一对一对往里存.而且要保证键的唯一性. 1,添加. put(K key, V value) putAll(Map<? extends K,? extends V> m) 2,删除. clear() remove(Object key) 3,判断. containsValue(Object value) containsKey(Object key) isEmpty() 4,获取. get(Object ke

黑马程序员——集合篇

------- android培训.java培训.期待与您交流! ---------- 1.集合类 为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一 种方式. 数组和集合类同是容器,有何不同? 数组虽然也可以存储对象,但长度是固定的:集合长度是可变的.数组中可以存储基本数据类型,集合只能存储对象. 集合类的特点 集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象. 2.集合框架的构成及分类 3.

黑马程序员——集合基础知识(泛型)

集合:泛型基础知识 泛型.(泛型就是类型参数化,默认的时object,虽然不用强制类型转换,这个就要你自己去写特性方法,比如compareto是string的特有方法吧,你可以写但是父类肯定调用不了) itnex t对象都是obj要使用对象的特性功能必须强.编译的时候没问题,因为都不知道你会传什么对象,你橙子也可以当作apple来传,设计的时候并不知道! 泛型作用.1.用于解决安全问题.运行时期出现的问题classcastexception转移到编译时期.2.迭代器里面的itnext()不用强转

黑马程序员——集合基础知识(Collection)

集合基础知识 数组:长度固定,可存基本数据和对象. 集合:只能放对象,不固定.容器也有共性,不断抽取成一个体系,集合框架.参阅顶层创建底层.顶层是collection.collection里有两个常见的接口,List和Set.常见集合有Arraylist,linkedlist,vector,hashSet TreeSet.为什么会出现这么多的容器呢,因为每一个容器对数据的存储方式都有不一样,.这个存储方式称之为数据结构!!因为他们的特点不一样 list因为有脚标存储和删除的效率很低,Set的效率

黑马程序员之——Map、泛型、集合框架工具类:Collections,Arrays

第一讲,第二讲:黑马程序员_毕向东_Java基础视频教程第15天-06-集合框架(泛型概述),(泛型使用) 一,泛型了解: 泛型的由来:泛型是JDK1.5版本以后出现的新特性.用于解决安全问题,是一个类型安全机制. 好处:将运行时期出现的问题ClassCastException,转移到了编译时期.方便于程序员解决问题.让运行时期问题减少.安全. 好处:避免了强制转换的麻烦. 二,泛型的格式:通过<>来定义要操作的引用数据类型.    如:ArrayList<String>  //定

黑马程序员-集合框架(Map和Collections)

--Java培训.Android培训.iOS培训..Net培训.期待与您交流!--- 一.概述 Map是一种存储键值对的存储容器,而且保证键的唯一性.提供一种以"键"标识"值"的数据存储方式.接口形式为:Map<K,V>,其中K是此映射所维护的键的类型,V是映射值的类型.其有两个常用子类,HashMap和TreeMap,另有HashTable与HashMap功能类似,是早期版本.三者特点与不同如下: HashMap:JDK1.2版本出现,底层使用哈希表数

黑马程序员——java——Map集合的子类HashMap的简单操作方法

Map集合的子类HashMap的简单操作方法 import java.util.HashMap; import java.util.Iterator; public class HashMapDemos { public static void%r0main(String[] args) { // HashMap<Studenti,String> hm = new HashMap<Studenti,String>(); hm.put(new Studenti("kk&qu

黑马程序员——集合小结

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 接口:Collection Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set. 所有实现C