を追加私は、次の形式を有するtxtファイル(グラフのノードとコストを表す)を持っている:JavaのArrayListの機能
B 2
A C 3
D 4
BのC 2。 。 。
上記のデータを表すためにNode
というクラスがあります。
class Node{
Node leftchild;
Node rightchild;
int cost;
public Node(Node firstchild, Node secondchild, int cost){
this.leftchild = firstchild;
this.rightchild = secondchild;
this.cost = cost;
}
public Node(Node firstchild, Node secondchild) {
this.leftchild = firstchild;
this.rightchild = secondchild;
}
public ArrayList<Node> getChildren(){
ArrayList<Node> childNodes = new ArrayList<Node>();
if(this.leftchild != null)
{
childNodes.add(leftchild);
}
if(this.rightchild != null)
{
childNodes.add(rightchild);
}
return childNodes;
}
public boolean removeChild(Node n){
return false;
}
}
私は今ファイルから(上述形式上)データを読み取り、次のように3次元配列に格納したい私のNode
クラスで以下
[A] [B]だから、私は、ファイルからデータを読み取るには、以下の方法を持って配列、(b)にそれを格納している
の[2]
[A] [C] [3]
..私は、arraylistにトークンを追加中にエラーが発生しています。私はこの問題を解決する方法がわからないですIncompatible types: String cannot be converted to Node.
:として
私のエラーは言っています。どんな種類の助けでも大歓迎です。ありがとう。
public Node[][][] getNodes(File file) throws IOException {
FileReader inputHeuristic = new FileReader(file);
BufferedReader bufferReader = new BufferedReader(inputHeuristic);
String line;
List list = new ArrayList();
while ((line = bufferReader.readLine()) != null) {
String[] tokens = line.split(" ");
list.add(new Node(tokens[0], tokens[1], tokens[2]));
}
bufferReader.close();
return list.toArray(new Node[list.size()]); // converting list to array
}
対応するコンストラクタが2つの 'Node'値と1つの' int'値を期待しているときに 'なぜ新しいノード(トークン[0]、トークン[1]、トークン[2]公開ノード(ノードfirstchild、ノードsecondchild、intコスト) '? –
私はそれらの型を追加する方法がわかりませんでした、私はそれを見つけたとそれを発見しました – Dee
'Node'クラスの型を配列リストに追加する方法がわかりませんでした。私はトークンが整数でしか動作しないことを知っていますが、どのようにクラス型を追加しますか?私はわかりません。私はこれに少し慣れています。 – Dee