JAVA集合之Map映射深刻总结案例附上解释跟总结

  • 格式:docx
  • 大小:32.46 KB
  • 文档页数:20

下载文档原格式

  / 20
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java集合系列之Map映射学习总结一.HashMap实例

案例1:HashMapDemo1

package Map映射;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

/**

* 顺序结构

* 基于哈希表的Map 接口的实现。

* 键和值都允许是null,值可以重复。

* 无序的

* 线程不安全的。(不同步)

* 遍历无序输出.

* 和Set集一样,没有for循环遍历的方法。

* 遍历Map方法有两种:

* ①调用keySet方法:

* Set keys = map.keySet();

* Iterator it = keys.iterator();

* ②调用entrySet方法:

* Set keys = map.entrySet();

* Iterator it = keys.iterator();

* 本例子遍历的是基本类型

*

*/

public class HashMapDemo1 {

public static void main(String[] args) {

HashMap map = new HashMap();

map.put(1, 111);

map.put("1", "上海");

map.put(5, "广州");

map.put(3, "西安");

map.put(null,"武汉"); //键允许是null

map.put(2, null);//值允许是null

map.put(null,null);//键和值都允许是null,会替换前面的null:武汉.

System.out.println("**********迭代器遍历调用keySet方法*********");

Set keys = map.keySet();//获取所有的键,放入一个集合中

Iterator it = keys.iterator();//取得迭代器才可以遍历

//遍历出来的结果是无序的。

while(it.hasNext())

{

Object obj = it.next();//切记这个至少遍历键,不是值。

System.out.println(obj+"------>"+map.get(obj));//取得键对应的值

}

System.out.println("**********迭代器遍历调用entrySet方法*********");

Set set1=map.entrySet();

Iterator iterator1=set1.iterator();

while (iterator1.hasNext()) {

Map.Entry object = (Map.Entry) iterator1.next();

System.out.println(object.getKey()+"------>"+object.getValue());

}

}

}

案例2:HashMapDemo2

package Map映射;

import java.util.*;

public class HashMapDemo2 {

@SuppressWarnings("rawtypes")

public static void main(String[] args){

HashMap map=new HashMap();//一个键对应一个值,而且键不能重复,会被覆盖

HashMap map1=new HashMap();

Person2 p1=new Person2("李川",111,80);

Person2 p2=new Person2("李您",111,80);

Person2 p3=new Person2("林是",111,80);

map1.put(1, p1);

map1.put(2, p2);

map1.put(3, p3);

map.put(1, 110);

map.put(2, 220);

map.put("城市","福建");

map.put(null, null);

System.out.println("***********用keySet方法遍历*********");

Set keys=map.keySet();//取得键值,取得map所有的键值,存入set集合中

Iterator iterator=keys.iterator();//利用键值取得value值

while(iterator.hasNext()){

Object object=iterator.next();

System.out.println(object+"------->"+map.get(object));//输出是无序的

}

System.out.println("***********用entrySet方法遍历*********");

Set> keys1=map1.entrySet();//查找api文档,发现map1调用entrySet方法返回的的是Set>,所以要用相应的接收。

>可写或不写

Iterator> iterator1=keys1.iterator(); //得到一个Set的迭代器,在后面的遍历中使用。Set>可写可不写。

while(iterator1.hasNext()){

Map.Entry entry = (Map.Entry) iterator1.next();

// entry.getValue();表示取得该键对应的值,这个值要是基本类型的话,那就直接输出,要是引用类型的话,还需要调用方法取得相应的值

System.out.println((entry.getKey()+"------->"+"姓名:

"+(entry.getValue()).getname()+"学号:"+(entry.getValue()).getno()+"分数:"+(entry.getValue()).getscore()));//输出是无序的

}

}

}

class Person2{

String name;

int no;

int score;

public Person2(String name,int no,int score){

=name;

this.no=no;

this.score=score;

}

public void setname(String name){

=name;

}

public void setno(int no){

this.no=no;

}

public void setscore(int score){

this.score=score;

}

public String getname(){

return name;

}

public int getno(){

return no;

}

public int getscore(){