thinking in java -第11章持有对象-练习25
统计一段文本中,每个单词出现的位置,用map实现,key是单词,value是单词位置的list。
package collection.test; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; public class TestMap { public static void statistics(Map<String, ArrayList<Integer>> map, List<String> list) { for (int i = 0; i < list.size(); i++) { if (map.containsKey(list.get(i))) { ArrayList<Integer> postiArrayList = map.get(list.get(i)); postiArrayList.add(new Integer(i)); map.put(list.get(i), postiArrayList); } else { ArrayList<Integer> postiArrayList = new ArrayList<Integer>(); postiArrayList.add(new Integer(i)); map.put(list.get(i), postiArrayList); // System.out.println(map); } } } public static void main(String[] args) { Map<String, ArrayList<Integer>> map = new HashMap<String, ArrayList<Integer>>(); statistics(map, Arrays.asList("i am sunny hello world i am kitty hello kitty" .split(" "))); System.out.println(map); } }
测试结果:
{hello=[3, 8], sunny=[2], am=[1, 6], kitty=[7, 9], world=[4], i=[0, 5]}

浙公网安备 33010602011771号