版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shytry/article/details/78919826
运行该程序并输入:hashcodeahahah
将得到结果为:
o = [5]
h = [0, 3, 9, 11, 13]
e = [7]
d = [6]
s = [2]
c = [4]
a = [1, 8, 10, 12]
程序的运行时间10662ms
完整代码
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
/**
*问题:输入字符串,记录其中每个字母所在的位置,输出其索引
*/
public class test_practice_collection {
public static void main(String [] args){
/*起始时间*/
long x=System.currentTimeMillis();
Map<String,ArrayList<Integer>> map=new HashMap<String,ArrayList<Integer>>();
Scanner scan=new Scanner(System.in);
String str=scan.next();
char[] arrays=str.toCharArray();
for (int i=0;i<arrays.length;i++){
if(map.get(arrays[i]+" ")==null){
ArrayList<Integer> list=new ArrayList<Integer>();
list.add(i);
map.put(arrays[i]+" ",list);
}
else {
ArrayList<Integer> list1=new ArrayList<Integer>();
list1 = map.get(arrays[i]+" ");
list1.add(i);
map.put(arrays[i] + " ", list1);
}
}
for (String s:map.keySet()
) {
ArrayList<Integer> ss=map.get(s);
System.out.println(s+"= "+ss);
}
long y=System.currentTimeMillis();
System.out.println("程序的运行时间"+(y-x)+"ms");
}
}