Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重新分类JAVA字符串列表_Java_Linked List - Fatal编程技术网

重新分类JAVA字符串列表

重新分类JAVA字符串列表,java,linked-list,Java,Linked List,我需要一些关于这个Java代码的帮助 我将此列表保存在文本文件中,如下所示: a b a c a d c h b e b f b g g l e i e j f k k m 1 2 1 3 2 4 读取文件test.txt后,将行添加到一个列表(代码中名为ch)中,该列表由两部分组成,第一部分是源代码,在代码中提取为变量src 第二部分是代码中作为trg的目标提取 例如,在第一行:ab中,源(src)是et,目标(trg)是b 现在,我想创建一个新的列表(代码中的myList),当有另一行目标

我需要一些关于这个Java代码的帮助

我将此列表保存在文本文件中,如下所示:

a b
a c
a d
c h
b e
b f
b g
g l
e i
e j
f k
k m
1 2
1 3
2 4
读取文件test.txt后,将行添加到一个列表(代码中名为ch)中,该列表由两部分组成,第一部分是源代码,在代码中提取为变量src 第二部分是代码中作为trg的目标提取

例如,在第一行:ab中,源(src)是et,目标(trg)是b

现在,我想创建一个新的列表(代码中的myList),当有另一行目标等于前一行的源时。例如,让我们继续看第一行,看第五行:

a b 
b e 
我的列表中必须包含一行的新列表:a b e

因此,总的来说,ch列表必须重新分类如下:

a d
a c h
a b g l 
a b e i 
a b e j 
a b f k m
1 2 4
1 3
我获得以下例外情况:

行:线程“main”java.lang.NullPointerException中的b异常 在pathcreator.test.main(test.java:48)上,选择了以下选项: -Xmx512M

这段代码基本上不能正常工作,因为我只构建了一个包含3个元素的新列表myList.add(src[a]+“”+trg[a]+“”+trg[b]);而这可能会更多

有什么帮助吗

这是我的密码:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.LinkedList;

    public class Test {

        public static void main(String[] args) throws FileNotFoundException {

                FileReader fis;
                fis = new FileReader("c:\\test.txt");

                BufferedReader in = new BufferedReader(fis);
                String i=null;
                String line =null;  
                String[] src = null; 
                String[] trg = null;

                 LinkedList<String> ch = new LinkedList<String>();
                 LinkedList<String> myList = new LinkedList<String>();
                try {
                    while((i = in.readLine()) != null)
                    {

                            line = i;
                            ch.add(line);

                            System.out.println(" line:"  + line);
                            src = new String[ch.size()];
                            trg =  new String[ch.size()];


                            for(int j = 0; j<ch.size()-1;j++){

                                  String pC = ch.get(j).toString();
                                  String[] pE = pC.split(" ");
                                  src[j] = pE[0];
                                  trg[j] = pE[1];     

                            }

                            for(int a = 0; a<src.length; a++){
                                for(int b = a; b<trg.length; b++){
                                    if(src[b].equals(trg[a]) && a!= b){
                                        myList.add(src[a] +" "+trg[a]+" "+trg[b]);

                                        System.out.println(src[a] +" "+trg[a]+" "+trg[b]);
                                    }
                                }
                            }
                            }
                        }


                catch (IOException e){
                    System.out.println(e.getMessage());
                    System.exit(1);
                }

            }

    } 
导入java.io.BufferedReader;
导入java.io.FileNotFoundException;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.LinkedList;
公开课考试{
公共静态void main(字符串[]args)引发FileNotFoundException{
文件阅读器;
fis=新文件读取器(“c:\\test.txt”);
BufferedReader in=新的BufferedReader(fis);
字符串i=null;
字符串行=null;
字符串[]src=null;
字符串[]trg=null;
LinkedList ch=新建LinkedList();
LinkedList myList=新建LinkedList();
试一试{
而((i=in.readLine())!=null)
{
直线=i;
总添加(行);
System.out.println(“行:”+行);
src=新字符串[ch.size()];
trg=新字符串[ch.size()];

对于(int j=0;j如果我理解您的问题:

输入是图形的边列表,
输出是图形中所有树的所有屋顶到树叶路径的列表

我建议用您的输入填充图形结构,然后搜索并使用算法打印屋顶到树叶的路径(您可能可以在google/stackoverflow上找到)


你的异常是因为
jn这个算法背后的标准是什么?你说的重分类是什么意思?另外,你应该发布准确的异常堆栈跟踪,以便让我们了解问题。我不知道你想做什么。无论是从描述还是从代码。到目前为止,我能告诉你的是你违反了常用的编码约定:变量以小写字母开头,类以大写字母开头(这也让我很难理解).但是忘了代码吧:你能用不同的词再次解释一下它的用途吗?@AlessandroSuglia srry为此,我添加了更多的细节,提前谢谢你。@tilois我编辑了问题,请看一看,并在中感谢你advance@Volune他的回答一针见血。我认为数据结构不适合解决g中的问题一般来说。你实际要做的是找到初始设置产生的所有可传递路径。用4个列表解决这个问题。虽然不会说这是不可能的,但可能很难;)你从最初的描述中找到了问题的根源,得到了我的赞扬!@Volume非常感谢你,你是最棒的,这是关于找到打印屋顶到树叶的路径,已经找到了一些算法,并将继续工作。