thinking in java -第11章持有对象-练习4 -补充(2012-08-25 20:15)

源码

 1 package collection.test;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Iterator;
 5 import java.util.List;
 6 
 7 public class MusicGenerator {
 8     private List<String> musicList = new ArrayList<String>();
 9     private Iterator<String> iterator;
10 
11     public MusicGenerator(List<String> list) {
12         musicList.addAll(list);
13         iterator = musicList.iterator();
14     }
15     public String next() {
16 
17         if (iterator.hasNext()) {
18             return iterator.next();
19         } else {
20             iterator = musicList.iterator();
21             return iterator.next();
22         }
23     }
24 }

 

工具类

 1 package collection.test;
 2 
 3 import java.util.Collection;
 4 import java.util.Map;
 5 
 6 public class FillCollection {
 7     public static Collection<String> fill(Collection<String> collection,
 8             String musicName) {
 9         collection.add(musicName);
10         return collection;
11 
12     }
13 
14     public static Map<String, String> fill(Map<String, String> map,
15             String musicName) {
16         map.put("name" + "_" + musicName, musicName);
17         return map;
18 
19     }
20 }

测试

View Code
package collection.test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class TestGeneratorMusic {
    private static List<String> arrayList = new ArrayList<String>();
    private static List<String> linkedList = new LinkedList<String>();
    private static Set<String> hashSet = new HashSet<String>();
    private static Set<String> linkedHashSet = new LinkedHashSet<String>();
    private static Map<String, String> map = new HashMap<String, String>();

    public static void main(String[] args) {

        MusicGenerator generator = new MusicGenerator(Arrays.asList("as long ",
                "baby", "say goodbye"));
        for (int i = 0; i < 10; i++) {
            FillCollection.fill(arrayList, generator.next());
            FillCollection.fill(linkedList, generator.next());
            FillCollection.fill(hashSet, generator.next());
            FillCollection.fill(linkedHashSet, generator.next());
            FillCollection.fill(map, generator.next());
        }
        System.out.println(arrayList);
        System.out.println(linkedList);
        System.out.println(hashSet);
        System.out.println(linkedHashSet);
        System.out.println(map);
    }
}
posted @ 2012-08-25 21:07  sunnyfan  阅读(257)  评论(0)    收藏  举报