您的位置:首页 > 编程语言 > Java开发

【ThinkingInJava】21、关于Collection和Iterator在java中是一起绑定的

2015-05-03 20:22 507 查看
/**
* 书本:《Thinking In Java》
* 功能:关于Collection和Iterator在java中是一起绑定的
* 文件:InterfaceVsIterator.java
* 时间:2015年4月8日18:09:30
* 作者:cutter_point
*/
package Lesson11holdingyourobjects;

import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import Lesson14TypeInformation.pets.Pet;
import Lesson14TypeInformation.pets.Pets;

public class InterfaceVsIterator 
{
	public static void display(Iterator<Pet> it)
	{
		while(it.hasNext())
		{
			Pet p = it.next();
			System.out.print(p.id() + " : " + p + "  ");
		}
		System.out.println();
		System.out.println("-----------------------------iterator---------------------------------");
	}
	
	public static void display(Collection<Pet> pets)
	{
		for(Pet p : pets)
			System.out.print(p.id() + " : " + p + "  ");
		System.out.println();
		System.out.println("-----------------------------Coolection---------------------------------");
	}
	
	public static void main(String [] args)
	{
		List<Pet> petList = Pets.arrayList(8);
		System.out.println("这个宠物集合显示:" + petList);
		Set<Pet> petSet = new HashSet<Pet>(petList);
		Map<String, Pet> petMap = new LinkedHashMap<String, Pet>();
		
		String[] names = ("Ralph, Eric, Robin, Lacey, " +
			      "Britney, Sam, Spot, Fluffy").split(", ");
		
		for(int i = 0; i < names.length; ++i)
			petMap.put(names[i], petList.get(i));
		
		InterfaceVsIterator.display(petList);
		InterfaceVsIterator.display(petSet);
		InterfaceVsIterator.display(petList.iterator());
		InterfaceVsIterator.display(petSet.iterator());
		System.out.println("这个map的显示" + petMap);
		System.out.println("这个key的显示" + petMap.keySet());
		InterfaceVsIterator.display(petMap.values());
		InterfaceVsIterator.display(petMap.values().iterator());
		
	}

}

/*
 * 
这个宠物集合显示:[Rat, Manx, Cymric, Mutt, Pug, Cymric, Pug, Manx]
0 : Rat  1 : Manx  2 : Cymric  3 : Mutt  4 : Pug  5 : Cymric  6 : Pug  7 : Manx  
-----------------------------Coolection---------------------------------
2 : Cymric  1 : Manx  0 : Rat  6 : Pug  5 : Cymric  4 : Pug  3 : Mutt  7 : Manx  
-----------------------------Coolection---------------------------------
0 : Rat  1 : Manx  2 : Cymric  3 : Mutt  4 : Pug  5 : Cymric  6 : Pug  7 : Manx  
-----------------------------iterator---------------------------------
2 : Cymric  1 : Manx  0 : Rat  6 : Pug  5 : Cymric  4 : Pug  3 : Mutt  7 : Manx  
-----------------------------iterator---------------------------------
这个map的显示{Ralph=Rat, Eric=Manx, Robin=Cymric, Lacey=Mutt, Britney=Pug, Sam=Cymric, Spot=Pug, Fluffy=Manx}
这个key的显示[Ralph, Eric, Robin, Lacey, Britney, Sam, Spot, Fluffy]
0 : Rat  1 : Manx  2 : Cymric  3 : Mutt  4 : Pug  5 : Cymric  6 : Pug  7 : Manx  
-----------------------------Coolection---------------------------------
0 : Rat  1 : Manx  2 : Cymric  3 : Mutt  4 : Pug  5 : Cymric  6 : Pug  7 : Manx  
-----------------------------iterator---------------------------------
*/


//: typeinfo/pets/Pet.java
package Lesson14TypeInformation.pets;

public class Pet extends Individual {
  public Pet(String name) { super(name); }
  public Pet() { super(); }
} ///:~


//: typeinfo/pets/Pets.java
// Facade to produce a default PetCreator.
package Lesson14TypeInformation.pets;
import java.util.*;

public class Pets {
  public static final PetCreator creator =
    new LiteralPetCreator();
  public static Pet randomPet() {
    return creator.randomPet();
  }
  public static Pet[] createArray(int size) {
    return creator.createArray(size);
  }
  public static ArrayList<Pet> arrayList(int size) {
    return creator.arrayList(size);
  }
} ///:~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐