Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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 - Fatal编程技术网

Java 文件读取、顶点和调整列表

Java 文件读取、顶点和调整列表,java,Java,我必须开始创建 类文件以读取文件,但我对分隔符有问题:[,] 类顶点属性int num;邻居名单 类邻居属性int vertexnum;邻居其次; 我怎么能说0是一个顶点,而它的相邻顶点是2和9呢 输入文件1: 0:[2,9] 1:[8,5,7,2]..... 我是初学者,我如何读取这个文件,0是一个顶点,它的邻居是2和9,其他顶点也是一样的 我想用邻接列表0表示图,邻接列表2和9。。。。。 请帮助我了解一下如何做到这一点。可能类似于(不太强健/有弹性,未经测试) 我假设文件的格式是 0: [2

我必须开始创建
类文件以读取文件,但我对分隔符有问题:[,] 类顶点属性int num;邻居名单 类邻居属性int vertexnum;邻居其次; 我怎么能说0是一个顶点,而它的相邻顶点是2和9呢 输入文件1: 0:[2,9] 1:[8,5,7,2]..... 我是初学者,我如何读取这个文件,0是一个顶点,它的邻居是2和9,其他顶点也是一样的

我想用邻接列表0表示图,邻接列表2和9。。。。。 请帮助我了解一下如何做到这一点。

可能类似于(不太强健/有弹性,未经测试)

我假设文件的格式是

0: [2,3,4]
1: [2,4,6]
etc
Java代码:

FileInputStream fis = new FileInputStream(fin);

//Construct BufferedReader from InputStreamReader
BufferedReader br = new BufferedReader(new InputStreamReader(fis));

String line = null;
while ((line = br.readLine()) != null) {
      int vertex = Integer.parseInt(line.substring(0, line.indexOf(":")) //get the number before : 
       String neighboorString = (line.substring(line.indexOf("[")+1, line.indexOf("]") //get the string between [ ]
      List<Integer> neighbors = new ArrayList<Integer>();
      for (String neighbor : neighborString.split(",")) { //split the string between , to get the neighbor id
            neighbors.add(Integer.parseInt(neighbor))

       }
       //populate your structure as required)
}
//close the streams/readers
FileInputStream fis=新的FileInputStream(fin);
//从InputStreamReader构造BufferedReader
BufferedReader br=新的BufferedReader(新的InputStreamReader(fis));
字符串行=null;
而((line=br.readLine())!=null){
int-vertex=Integer.parseInt(line.substring(0,line.indexOf(“:”)//获取前面的数字:
String nextorstring=(line.substring(line.indexOf(“[”)+1,line.indexOf(“])//获取介于[]之间的字符串
列表邻居=新的ArrayList();
for(String neighbor:neighborString.split(“,”){//将字符串拆分,以获取邻居id
add(Integer.parseInt(邻居))
}
//根据需要填充您的结构)
}
//关闭流/读卡器

请我想用5种颜色给这个图上色。为此,我问了2个条件,但我不知道我是java初学者,这对我有什么帮助-如果一个图的顶点有4个邻居,它可以用一个邻居不使用的颜色给顶点上色-如果一个顶点有5个邻居可以用邻居不使用的颜色给顶点上色,我该怎么办要阅读我在页面顶部指示的文件以应用颜色的条件,请返回每个颜色的顶点列表。请帮助我