请使用代码格式!package algorithm;import java.util.ArrayList;
import java.util.List;public class Tree {
private List<Node> list = new ArrayList<Node>();
public Tree(String s){
Node zero = new Node();
zero.data = s;
list.add(zero);
}
/*
*内部类节点对象,包含父节点和自身数据
*/
class Node{
String data;
String dad;
@Override
public String toString() {
// TODO Auto-generated method stub
return "dad: "+dad+" ; "+"data: "+data;
}
}
public static void main(String[] args) {
Tree tree = new Tree("world");
tree.add("world","asia");
tree.add("world","america");
tree.add("world","africa");
tree.add("asia","China");
tree.add("asia","Japan");
tree.add("asia","Korean");
System.out.println(tree.children("world"));
System.out.println(tree.parent("asia"));
// System.out.println(tree.children("world"));
}public List<String> children(String s) {
List<String> l = new ArrayList<String>();
for(int i=0;i<list.size(); i++)
if(list.get(i).dad==s) l.add(list.get(i).data); //这里如果使用list.get(i).dad.equals(s)方法比较则会报空指针异常
return l;
}
public String parent(String s) {
for(int i=0;i<list.size();i++){
if(list.get(i).data.equals(s)) //这里的.equals却能正常运行
return list.get(i).dad;
}
return null;
}
public void add(String dad, String data) {
for(int i=0; i<list.size(); i++){
if(list.get(i).data.equals(dad)){
Node node = new Node();
node.dad = dad;
node.data = data;
list.add(node);
}
}
}
}
import java.util.List;public class Tree {
private List<Node> list = new ArrayList<Node>();
public Tree(String s){
Node zero = new Node();
zero.data = s;
list.add(zero);
}
/*
*内部类节点对象,包含父节点和自身数据
*/
class Node{
String data;
String dad;
@Override
public String toString() {
// TODO Auto-generated method stub
return "dad: "+dad+" ; "+"data: "+data;
}
}
public static void main(String[] args) {
Tree tree = new Tree("world");
tree.add("world","asia");
tree.add("world","america");
tree.add("world","africa");
tree.add("asia","China");
tree.add("asia","Japan");
tree.add("asia","Korean");
System.out.println(tree.children("world"));
System.out.println(tree.parent("asia"));
// System.out.println(tree.children("world"));
}public List<String> children(String s) {
List<String> l = new ArrayList<String>();
for(int i=0;i<list.size(); i++)
if(list.get(i).dad==s) l.add(list.get(i).data); //这里如果使用list.get(i).dad.equals(s)方法比较则会报空指针异常
return l;
}
public String parent(String s) {
for(int i=0;i<list.size();i++){
if(list.get(i).data.equals(s)) //这里的.equals却能正常运行
return list.get(i).dad;
}
return null;
}
public void add(String dad, String data) {
for(int i=0; i<list.size(); i++){
if(list.get(i).data.equals(dad)){
Node node = new Node();
node.dad = dad;
node.data = data;
list.add(node);
}
}
}
}
如果前面一个是null,那你equals就会nullpointer
import java.util.List;public class Tree {
private List<Node> list = new ArrayList<Node>(); public Tree(String s) {
Node zero = new Node();
zero.data = s;
list.add(zero);
} /*
* 内部类节点对象,包含父节点和自身数据
*/
class Node {
String data;
String dad; @Override
public String toString() {
// TODO Auto-generated method stub
return "dad: " + dad + " ; " + "data: " + data;
}
} public static void main(String[] args) {
Tree tree = new Tree("world");
tree.add("world", "asia");
tree.add("world", "america");
tree.add("world", "africa");
tree.add("asia", "China");
tree.add("asia", "Japan");
tree.add("asia", "Korean");
System.out.println(tree.children("world"));
System.out.println(tree.parent("asia"));
// System.out.println(tree.children("world"));
} public List<String> children(String s) {
List<String> l = new ArrayList<String>();
for (int i = 0; i < list.size(); i++) {
if (s.equals(list.get(i).dad)) //java编码规范建议这橛写,"".equals(变量)
//if(list.get(i).dad==s)// 这里如果使用list.get(i).dad.equals(s)方法比较则会报空指针异常
{
l.add(list.get(i).data);
}
}
return l;
} public String parent(String s) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).data.equals(s)) // 这里的.equals却能正常运行
return list.get(i).dad;
}
return null;
} public void add(String dad, String data) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).data.equals(dad)) {
Node node = new Node();
node.dad = dad;
node.data = data;
list.add(node);
}
}
}
}