码迷,mamicode.com
首页 > 编程语言 > 详细

Java之集合Map遍历

时间:2015-07-23 19:58:56      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:java   map   遍历   

/**
 * 1.尝试Map<Boy,ArrayList<GirlFriend>>
 * 2.尝试Map<Student,HashSet<Book>>
 * 3.尝试ArrayList(你看过的电视剧)<ArrayList<Role人物>>
 * 4.假如有以下email数据“aa@sohu.com,bb@163.com,cc@sina.com”现需要把email中的用户部分和邮件地址部分分离,分离后以键值对应的方式放入HashMap?
 * key	value
 * aa	sohu.com
 * bb	163.com
 * cc	sina.com
 */

package com.qf.home;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;

public class Home3 {

	public static void main(String[] args) {
		Map<Home3.Boy, ArrayList<Home3.GirlFriend>> boyMaps = new HashMap<Home3.Boy, ArrayList<Home3.GirlFriend>>();

		Home3.Boy boy1 = new Home3().new Boy("至尊宝", 18);
		Home3.Boy boy2 = new Home3().new Boy("夕阳武士", 19);

		ArrayList<Home3.GirlFriend> girlFriends1 = new ArrayList<Home3.GirlFriend>();
		ArrayList<Home3.GirlFriend> girlFriends2 = new ArrayList<Home3.GirlFriend>();

		Home3.GirlFriend girlFriend1 = new Home3().new GirlFriend("紫霞", 18, "18815276543");
		Home3.GirlFriend girlFriend2 = new Home3().new GirlFriend("青霞", 19, "18815276542");
		Home3.GirlFriend girlFriend3 = new Home3().new GirlFriend("兰霞", 20, "18815276541");

		girlFriends1.add(girlFriend1);
		girlFriends1.add(girlFriend2);
		girlFriends2.add(girlFriend3);
		girlFriends2.add(girlFriend3);

		boyMaps.put(boy1, girlFriends1);
		boyMaps.put(boy2, girlFriends2);

		// 第一种:普遍使用,二次取值
		System.out.println("通过Map.keySet遍历key和value:");
		for (Boy key : boyMaps.keySet()) {
			System.out.println("key= " + key + " and value= " + boyMaps.get(key));
		}

		// 第二种
		System.out.println("通过Map.entrySet使用iterator遍历key和value:");
		Iterator<Map.Entry<Home3.Boy, ArrayList<Home3.GirlFriend>>> it = boyMaps.entrySet().iterator();
		while (it.hasNext()) {
			Map.Entry<Home3.Boy, ArrayList<Home3.GirlFriend>> entry = it.next();
			System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
		}

		// 第三种:推荐,尤其是容量大时
		System.out.println("通过Map.entrySet遍历key和value");
		for (Map.Entry<Home3.Boy, ArrayList<Home3.GirlFriend>> entry : boyMaps.entrySet()) {
			System.out.println("key=" + entry.getKey() + "value=" + entry.getValue());
		}

		// 第四种
		System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
		for (ArrayList<Home3.GirlFriend> girlFriends: boyMaps.values()) {
			System.out.println("value= " + girlFriends);
		}

		Map<Home3.Student, HashSet<Home3.Book>> stuMaps = new TreeMap<Home3.Student, HashSet<Home3.Book>>();
		Home3.Student student1 = new Home3().new Student("至尊宝", 18, "男");
		Home3.Student student2 = new Home3().new Student("夕阳武士", 20, "男");

		HashSet<Home3.Book> books1 = new HashSet<Home3.Book>();
		HashSet<Home3.Book> books2 = new HashSet<Home3.Book>();

		Home3.Book book1 = new Home3().new Book("仙剑奇侠传", 200.7);
		Home3.Book book2 = new Home3().new Book("天外飞仙", 190.2);
		Home3.Book book3 = new Home3().new Book("轩辕剑", 199.2);

		books1.add(book1);
		books1.add(book2);
		books2.add(book3);
		books2.add(book3);

		stuMaps.put(student1, books1);
		stuMaps.put(student2, books2);

		// 第一种:普遍使用,二次取值
		System.out.println("通过Map.keySet遍历key和value:");
		for (Student key: stuMaps.keySet()) {
			System.out.println("key= " + key + " and value= " + stuMaps.get(key));
		}

		// 第二种
		System.out.println("通过Map.entrySet使用iterator遍历key和value:");
		Iterator<Map.Entry<Home3.Student, HashSet<Home3.Book>>> iterator = stuMaps.entrySet().iterator();
		while (iterator.hasNext()) {
			Map.Entry<Home3.Student, HashSet<Home3.Book>> entry = iterator.next();
			System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
		}

		// 第三种:推荐,尤其是容量大时
		System.out.println("通过Map.entrySet遍历key和value");
		for (Map.Entry<Home3.Student, HashSet<Home3.Book>> entry: stuMaps.entrySet()) {
			System.out.println("key=" + entry.getKey() + "value=" + entry.getValue());
		}

		// 第四种
		System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
		for (HashSet<Home3.Book> books: stuMaps.values()) {
			System.out.println("value= " + books);
		}
	}

	class Boy {
		private String name;
		private int age;

		public Boy(String name, int age) {
			this.name = name;
			this.age = age;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public int getAge() {
			return age;
		}

		public void setAge(int age) {
			this.age = age;
		}

		@Override
		public String toString() {
			return "Boy [name=" + name + ", age=" + age + "]";
		}

	}

	class GirlFriend {
		private String name;
		private int age;
		private String number;

		public GirlFriend(String name, int age, String number) {
			this.name = name;
			this.age = age;
			this.number = number;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public int getAge() {
			return age;
		}

		public void setAge(int age) {
			this.age = age;
		}

		public String getNumber() {
			return number;
		}

		public void setNumber(String number) {
			this.number = number;
		}

		@Override
		public String toString() {
			return "GirlFriend [name=" + name + ", age=" + age + ", number=" + number + "]";
		}

	}

	class Student implements Comparable {
		private String name;
		private int age;
		private String sex;

		public Student(String name, int age, String sex) {
			this.name = name;
			this.age = age;
			this.sex = sex;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public int getAge() {
			return age;
		}

		public void setAge(int age) {
			this.age = age;
		}

		public String getSex() {
			return sex;
		}

		public void setSex(String sex) {
			this.sex = sex;
		}

		@Override
		public String toString() {
			return "Student [name=" + name + ", age=" + age + ", sex=" + sex + "]";
		}

		@Override
		public int compareTo(Object o) {
			// TODO Auto-generated method stub
			return 0;
		}

	}

	class Book {
		private String name;
		private double price;

		public Book(String name, double price) {
			this.name = name;
			this.price = price;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public double getPrice() {
			return price;
		}

		public void setPrice(double price) {
			this.price = price;
		}

		@Override
		public String toString() {
			return "Book [name=" + name + ", price=" + price + "]";
		}

	}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

Java之集合Map遍历

标签:java   map   遍历   

原文地址:http://blog.csdn.net/qq_18291623/article/details/47026253

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!