import java.util.*;
/**
* 练习25:创建一个Map<String,ArrayList<Integer>>,使用net.mindview.TextFile来打开一个文本文件,并一次读入一个单词(使用"\\W+"作为
* TextFile构造器的第二个参数)。在读入单词时对它们进行计数,并且对于文件中的每一个单词,都在ArrayList<Integer>中记录下与这个词相关联的
* 单词计数。实际上,它记录的是该单词在文件中被发现的位置。
*/
public class Exercise25 {
public static void main(String[] args) {
Map<String, ArrayList<Integer>> map = new HashMap<String, ArrayList<Integer>>();
List<String> words = new ArrayList<String>();
words.addAll(new TextFile("UniqueWords.java", "\\W+"));
ArrayList<Integer> arrayList = new ArrayList<Integer>();
for (int i = 0; i < words.size(); i++) {
String word = words.get(i);
if (map.get(word) == null) {
arrayList = new ArrayList<Integer>();
arrayList.add(i);
} else {
arrayList = map.get(word);
arrayList.add(i);
}
map.put(word, arrayList);
}
System.out.println(map);
}
}
/*
{com=[1, 41], CASE_INSENSITIVE_ORDER=[29], Set=[8, 22], import=[5, 9], main=[19, 39], SetOperations=[45], String=[20, 23, 27, 28], Users=[34], demo=[3, 37, 43], System=[48], example=[2, 42], out=[49], println=[50], java=[6, 10, 40, 46], public=[13, 16], TreeSet=[12, 26], W=[47], class=[14], new=[25, 32], liran=[35], package=[0], static=[17], void=[18], src=[38], words=[24, 30, 51], TextFile=[33], elevensection=[4, 44], args=[21], Project=[36], util=[7, 11], addAll=[31], UniqueWords=[15]}
*///:~