接收要列出的字符串时出错

时间:2015-06-14 12:06:01

标签: java indexoutofboundsexception

这是一个程序,用于接收n个字符串以列出并查找每个字符串的重复次数以及打印字符串和地图中重复项的数量。

我收到此错误,我找不到问题!

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 5, Size: 5
    at java.util.ArrayList.rangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at Q1.main(Q1.java:16)

这是代码:

import java.util.*;

public class Q1 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Map<String,Integer> m = new HashMap<String,Integer>();
        List<String> l = new ArrayList<String>();
        int n = sc.nextInt();
        for(int i = 1; i <= n; i++) {
            l.add(sc.nextLine());
        }
        int count=1;
        for(int i = 0; i < l.size(); count = 1) {
            for(int j = 1; i < l.size(); j++){
                if(l.get(j)==l.get(i)){
                    l.remove(j);
                    count++; 
                }
            }
            m.put(l.get(i),count);
        }
        for(int i = 0;i < l.size(); count = 1) {
            System.out.println(m.get(i));
        }
    }
}

1 个答案:

答案 0 :(得分:2)

您没有递增for (int i=0; i<ProdCatList.Count; i++) { Dictionary<string, string> mydict = new Dictionary<string, string>(); mydict.Add(ProdCatList[i].Name, ProdCatList[i].Name); } mydictlist.Add(mydict);

i

同样在下面的代码中:

for(int i=0;i<l.size();count=1){

i的值是固定的,j无限增加为`for(int j = 1; i < l.size(); j++){` (始终),这导致IndexOutOfBoundsException。