Java 使用arraylist中的循环创建对象名称
我正在寻找在我的应用程序中包装TreeView的东西,但我无法使用循环创建节点对象 我只想动态创建一个对象名,我可以在我的树视图中使用它 这是我在应用程序中使用的库。Java 使用arraylist中的循环创建对象名称,java,android,loops,treeview,Java,Android,Loops,Treeview,我正在寻找在我的应用程序中包装TreeView的东西,但我无法使用循环创建节点对象 我只想动态创建一个对象名,我可以在我的树视图中使用它 这是我在应用程序中使用的库。 也许您应该重写方法getNodeText,因为您想传递参数。或者不要像getNodeTexti那样传递参数,因为这个方法已经有了计数器 private String getNodeText() { return "Node " + nodeCount++; } 我的感觉是你应该在这里使用一些收藏。考虑以下事项: fin
也许您应该重写方法getNodeText,因为您想传递参数。或者不要像getNodeTexti那样传递参数,因为这个方法已经有了计数器
private String getNodeText() {
return "Node " + nodeCount++;
}
我的感觉是你应该在这里使用一些收藏。考虑以下事项:
final List<Node> allNodes = new ArrayList<>();
for (int i=0; i < arrId.size(); i++) {
Node node = new Node(getNodeText(i));
allNodes.add(node);
}
这里的想法是,您不应该试图自己对变量进行编号。大多数时候,当您有这种需要时,您应该使用集合。大多数列表实现都有一个内置计数器,可用于对元素进行编号。您想对节点i做什么?@user7294900没有它,我无法动态创建TreeView如何显示足够的代码,以便清楚地了解这些for循环对您的问题的影响。谢谢。但我想使用来自数据库的“id”,所以尝试@Override getNodeText函数到getNodeTextdatabaseId,从数据库传递id参数,并返回Node+databaseId;而不是Node+nodeCount++;不,它只是一个显示在节点上的文本。我想动态创建节点对象。嘿,你们能帮我更多的忙吗?因为数据库中有两列,一列表示“id”,另一列表示“parentId”。我希望第一个“graph.addEdge”参数是“parentId”,另一个参数是“id”。您的代码可以工作,但对我来说,我希望节点具有“id”,以便可以与我的“parentId”匹配
final Graph graph = new Graph();
final Node node1 = new Node(getNodeText());
final Node node2 = new Node(getNodeText());
final Node node3 = new Node(getNodeText());
final Node node4 = new Node(getNodeText());
final Node node5 = new Node(getNodeText());
final Node node6 = new Node(getNodeText());
final Node node8 = new Node(getNodeText());
final Node node7 = new Node(getNodeText());
final Node node9 = new Node(getNodeText());
final Node node10 = new Node(getNodeText());
final Node node11 = new Node(getNodeText());
final Node node12 = new Node(getNodeText());
graph.addEdge(node1, node2);
graph.addEdge(node1, node3);
graph.addEdge(node1, node4);
graph.addEdge(node2, node5);
graph.addEdge(node2, node6);
graph.addEdge(node6, node7);
graph.addEdge(node6, node8);
graph.addEdge(node4, node9);
graph.addEdge(node4, node10);
graph.addEdge(node4, node11);
graph.addEdge(node11, node12);
private String getNodeText() {
return "Node " + nodeCount++;
}
final List<Node> allNodes = new ArrayList<>();
for (int i=0; i < arrId.size(); i++) {
Node node = new Node(getNodeText(i));
allNodes.add(node);
}
final Graph graph = new Graph();
graph.addEdge(node.get(0), node.get(1));
graph.addEdge(node.get(0), node.get(2));
graph.addEdge(node.get(0), node.get(3));
graph.addEdge(node.get(1), node.get(4));
graph.addEdge(node.get(1), node.get(5));
graph.addEdge(node.get(5), node.get(6));
graph.addEdge(node.get(5), node.get(7));
graph.addEdge(node.get(3), node.get(8));
graph.addEdge(node.get(3), node.get(9));
graph.addEdge(node.get(3), node.get(10));
graph.addEdge(node.get(10), node.get(11));