Java 存储嵌套列表

Java 存储嵌套列表,java,class,object,methods,Java,Class,Object,Methods,我真的需要一些帮助,所以我非常努力地将str存储在列表中的一个列表中,但这不会起作用。我写的代码对我来说非常有意义。有人能在这里给我一些指导吗。我绝望了。我在第30行myArrayList.get(index.add)(newClassObj)不断地得到错误 建议>> at java.util.ArrayList.rangeCheck(ArrayList.java:635) at java.util.ArrayList.get(ArrayList.java

我真的需要一些帮助,所以我非常努力地将str存储在列表中的一个列表中,但这不会起作用。我写的代码对我来说非常有意义。有人能在这里给我一些指导吗。我绝望了。我在第30行
myArrayList.get(index.add)(newClassObj)不断地得到错误

建议>>

          at java.util.ArrayList.rangeCheck(ArrayList.java:635)
          at java.util.ArrayList.get(ArrayList.java:411)
          at myClass.main(myClass.java:30)


public class myCLass {

    public static void main(String[] args) 
   {

     ArrayList<LinkedList<myCLass>>
     myArrayList = new ArrayList<LinkedList<MyClass>>(26);

     inFile file = new inFile();
     file.inFile("myfile.txt");
        while(inFile.hasNext())
        {
            String str = inFile.next();
            char ch = str.toUpperCase().charAt(0);
            char ch2 = 'A';
            int index = (int)ch - (int)ch2;
            for (int i = 0; i < 26; i++)
                myArrayList.add(new LinkedList<MyClass>());
            myClass newClassObj = new myClass(str);
            myArrayList.get(index).add(newClassObj);
        }
   }
}
位于java.util.ArrayList.rangeCheck(ArrayList.java:635)
获取(ArrayList.java:411)
位于myClass.main(myClass.java:30)
公共类myCLass{
公共静态void main(字符串[]args)
{
ArrayList
myArrayList=新ArrayList(26);
infle file=新的infle();
file.infle(“myfile.txt”);
while(infle.hasNext())
{
String str=infle.next();
char ch=str.toUpperCase().charAt(0);
char ch2='A';
int索引=(int)ch-(int)ch2;
对于(int i=0;i<26;i++)
添加(新的LinkedList());
myClass newClassObj=新myClass(str);
myArrayList.get(index.add)(newClassObj);
}
}
}

然后才能调用
myArrayList.get(index.add)(newClassObj)
,您必须确保
索引
myArrayList.size()
。否则您将得到一个索引越界异常

您的
myArrayList
的大小为0,因为您从未向其添加任何内容。将容量初始化为26不会向列表中添加26个元素。它不会向列表中添加任何元素

如果希望列表包含26个元素,则应正确初始化:

for (int i = 0; i < 26; i++)
    myArrayList.add(new LinkedList<MyClass>());
for(int i=0;i<26;i++)
添加(新的LinkedList());

然后才能调用
myArrayList.get(index.add)(newClassObj)
,您必须确保
索引
myArrayList.size()
。否则您将得到一个索引越界异常

您的
myArrayList
的大小为0,因为您从未向其添加任何内容。将容量初始化为26不会向列表中添加26个元素。它不会向列表中添加任何元素

如果希望列表包含26个元素,则应正确初始化:

for (int i = 0; i < 26; i++)
    myArrayList.add(new LinkedList<MyClass>());
for(int i=0;i<26;i++)
添加(新的LinkedList());

然后才能调用
myArrayList.get(index.add)(newClassObj)
,您必须确保
索引
myArrayList.size()
。否则您将得到一个索引越界异常

您的
myArrayList
的大小为0,因为您从未向其添加任何内容。将容量初始化为26不会向列表中添加26个元素。它不会向列表中添加任何元素

如果希望列表包含26个元素,则应正确初始化:

for (int i = 0; i < 26; i++)
    myArrayList.add(new LinkedList<MyClass>());
for(int i=0;i<26;i++)
添加(新的LinkedList());

然后才能调用
myArrayList.get(index.add)(newClassObj)
,您必须确保
索引
myArrayList.size()
。否则您将得到一个索引越界异常

您的
myArrayList
的大小为0,因为您从未向其添加任何内容。将容量初始化为26不会向列表中添加26个元素。它不会向列表中添加任何元素

如果希望列表包含26个元素,则应正确初始化:

for (int i = 0; i < 26; i++)
    myArrayList.add(new LinkedList<MyClass>());
for(int i=0;i<26;i++)
添加(新的LinkedList());

看起来你从来没有列过清单。您的列表有26个插槽,但您永远不会用列表填充这些插槽

我不知道这个
infle
是什么,所以我只是使用
java.util.Scanner
进行测试。我也没有看到这个原始的MyClass类,所以我只是添加了字符串。你的有点不同,但算法是一样的

import java.util.*;
import java.io.*;
public class MyClass {
    public static void main(String[] args) throws Exception {
        ArrayList<LinkedList<String>> list = new ArrayList<>(26);
        for(int i = 0; i < 26; i++) {
            list.add(new LinkedList<String>());
        }
        Scanner sc = new Scanner(new File("words.txt"));
        while(sc.hasNext()) {
            String next = sc.next();
            char c = next.toUpperCase().charAt(0);
            int index = c - 'A';
            list.get(index).add(next);
        }
        // let's test it by looking at all the H words
        System.out.println(list.get(7));
    }
}

看起来你从来没有列过清单。您的列表有26个插槽,但您永远不会用列表填充这些插槽

我不知道这个
infle
是什么,所以我只是使用
java.util.Scanner
进行测试。我也没有看到这个原始的MyClass类,所以我只是添加了字符串。你的有点不同,但算法是一样的

import java.util.*;
import java.io.*;
public class MyClass {
    public static void main(String[] args) throws Exception {
        ArrayList<LinkedList<String>> list = new ArrayList<>(26);
        for(int i = 0; i < 26; i++) {
            list.add(new LinkedList<String>());
        }
        Scanner sc = new Scanner(new File("words.txt"));
        while(sc.hasNext()) {
            String next = sc.next();
            char c = next.toUpperCase().charAt(0);
            int index = c - 'A';
            list.get(index).add(next);
        }
        // let's test it by looking at all the H words
        System.out.println(list.get(7));
    }
}

看起来你从来没有列过清单。您的列表有26个插槽,但您永远不会用列表填充这些插槽

我不知道这个
infle
是什么,所以我只是使用
java.util.Scanner
进行测试。我也没有看到这个原始的MyClass类,所以我只是添加了字符串。你的有点不同,但算法是一样的

import java.util.*;
import java.io.*;
public class MyClass {
    public static void main(String[] args) throws Exception {
        ArrayList<LinkedList<String>> list = new ArrayList<>(26);
        for(int i = 0; i < 26; i++) {
            list.add(new LinkedList<String>());
        }
        Scanner sc = new Scanner(new File("words.txt"));
        while(sc.hasNext()) {
            String next = sc.next();
            char c = next.toUpperCase().charAt(0);
            int index = c - 'A';
            list.get(index).add(next);
        }
        // let's test it by looking at all the H words
        System.out.println(list.get(7));
    }
}

看起来你从来没有列过清单。您的列表有26个插槽,但您永远不会用列表填充这些插槽

我不知道这个
infle
是什么,所以我只是使用
java.util.Scanner
进行测试。我也没有看到这个原始的MyClass类,所以我只是添加了字符串。你的有点不同,但算法是一样的

import java.util.*;
import java.io.*;
public class MyClass {
    public static void main(String[] args) throws Exception {
        ArrayList<LinkedList<String>> list = new ArrayList<>(26);
        for(int i = 0; i < 26; i++) {
            list.add(new LinkedList<String>());
        }
        Scanner sc = new Scanner(new File("words.txt"));
        while(sc.hasNext()) {
            String next = sc.next();
            char c = next.toUpperCase().charAt(0);
            int index = c - 'A';
            list.get(index).add(next);
        }
        // let's test it by looking at all the H words
        System.out.println(list.get(7));
    }
}

您得到的错误是什么?堆栈跟踪在哪里?
“…这不会正常工作。”
——它如何不正常工作?您得到了什么错误?“myfile.txt”中有什么内容?你期望什么样的产出?你得到了什么输出?请阅读一个好问题。请不要试图在评论中添加信息。改为编辑您的问题以添加更多信息/澄清。我得到的错误是'java.util.ArrayList.rangeCheck(ArrayList.java:635)在java.util.ArrayList.get(ArrayList.java:411)在CountWords.main(MyClass.java:30)'对不起,我对这个程序感到非常失望。我正在尝试将我的str存储到我的一个链接列表的正确位置。您收到的错误是什么?堆栈跟踪在哪里?
“…这不会正常工作。”
——它如何不正常工作?您得到了什么错误?“myfile.txt”中有什么内容?你的输出是什么