Map接口常用的几种遍历方式与小练习
keyset:获取所有的键,我们可以通过键获取值 entryset:获取所有的键值对 values:获取所有的值:此方法只能获取到value,无法获取key
package com. JiHe_. Map_ ;
import java. awt. print. Book ;
import java. util. * ;
public class Demo05 {
public static void main ( String [ ] args) {
Map hashMap = new HashMap ( ) ;
hashMap. put ( "邓超" , new Book1 ( "三国" , 100 ) ) ;
hashMap. put ( "邓超" , "孙俪" ) ;
hashMap. put ( "三国演义" , "雷霆嘎巴" ) ;
hashMap. put ( "三国演义" , "关羽" ) ;
hashMap. put ( null , "jack" ) ;
hashMap. put ( "红楼" , null ) ;
hashMap. put ( "琅琊榜" , "江左梅郎" ) ;
Set keyset = hashMap. keySet ( ) ;
Iterator iterator = keyset. iterator ( ) ;
while ( iterator. hasNext ( ) ) {
Object next = iterator. next ( ) ;
System . out. println ( next+ "-" + hashMap. get ( next) ) ;
}
System . out. println ( "==================================" ) ;
for ( Object key : keyset) {
System . out. println ( key+ "-" + hashMap. get ( key) ) ;
}
System . out. println ( "=====================================" ) ;
Collection values = hashMap. values ( ) ;
Iterator value = values. iterator ( ) ;
while ( value. hasNext ( ) ) {
Object o = value. next ( ) ;
System . out. println ( o) ;
}
System . out. println ( "---------------------------" ) ;
for ( Object n1: values) {
System . out. println ( n1) ;
}
System . out. println ( "************通过entrySet*********" ) ;
Set set = hashMap. entrySet ( ) ;
Iterator iterator1 = set. iterator ( ) ;
while ( iterator1. hasNext ( ) ) {
Object n2 = iterator1. next ( ) ;
Map. Entry n5= ( Map. Entry ) n2;
System . out. println ( n5. getKey ( ) + " " + n5. getValue ( ) ) ;
}
System . out. println ( "111111111111111111111111111111" ) ;
for ( Object o1: set) {
Map. Entry n3 = ( Map. Entry ) o1;
System . out. println ( n3. getKey ( ) + "-" + n3. getValue ( ) ) ;
}
}
}
class Book1 {
private String name;
private int prive;
public Book1 ( String name, int prive) {
this . name = name;
this . prive = prive;
}
public String getName ( ) {
return name;
}
public void setName ( String name) {
this . name = name;
}
public int getPrive ( ) {
return prive;
}
public void setPrive ( int prive) {
this . prive = prive;
}
}
练习作业
使用HashMap添加3个员工对象, 要求:键:员工id;值:员工对象 并且遍历显示 工资>18000的员工(便历方式至少两种) 员工类:姓名,工资,员工id
package com. JiHe_. Map_ ;
import com. sun. jmx. snmp. SnmpUnknownAccContrModelException ;
import java. util. HashMap ;
import java. util. Iterator ;
import java. util. Map ;
import java. util. Set ;
public class xiTi {
public static void main ( String [ ] args) {
HashMap hashMap = new HashMap ( ) ;
hashMap. put ( 1 , new staff ( "张飞" , 30000 , 1 ) ) ;
hashMap. put ( 2 , new staff ( "刘备" , 20000 , 2 ) ) ;
hashMap. put ( 3 , new staff ( "关羽" , 15000 , 3 ) ) ;
Set set = hashMap. keySet ( ) ;
for ( Object o: set) {
staff a1 = ( staff) hashMap. get ( o) ;
if ( a1. getWages ( ) > 18000 ) {
System . out. println ( a1) ;
}
}
Set set1 = hashMap. entrySet ( ) ;
Iterator iterator = set1. iterator ( ) ;
while ( iterator. hasNext ( ) ) {
Map. Entry next = ( Map. Entry ) iterator. next ( ) ;
staff value = ( staff) next. getValue ( ) ;
if ( value. getWages ( ) > 18000 ) {
System . out. println ( value) ;
}
}
}
}
class staff{
private String name;
private double wages;
private int id;
public staff ( String name, int wages, int id) {
this . name = name;
this . wages= wages;
this . id= id;
}
public String getName ( ) {
return name;
}
public void setName ( String name) {
this . name = name;
}
public double getWages ( ) {
return wages;
}
public void setWages ( double wages) {
this . wages = wages;
}
public int getId ( ) {
return id;
}
public void setId ( int id) {
this . id = id;
}
@Override
public String toString ( ) {
return "staff{" +
"name='" + name + '\'' +
", wages=" + wages +
", id=" + id +
'}' ;
}
}