N-ary通用树 - Java访谈

时间:2014-04-21 13:02:13

标签: java generics tree

如果已经提出这个问题,请原谅我。在完成基于使用n-ary树&树的代码评估后,我最近接受了一份工作面试。两种遍历方法。

正如本网站上的大多数示例一样,我使用Generics来定义我的树/节点数据类型,以便强制严格使用我声明Tree类型的任何数据类型。好吧,长话短说,我的结果很好,但面试官问我为什么选择使用Generics作为我的Tree数据结构。我告诉他,因为这是在我的评估中强制使用我想要使用的任何类型树的数据类型的最佳方法。我还告诉他我以前做过类似的数据结构,并记得如何实现它。

我对第一个问题的回答是否很远?

1 个答案:

答案 0 :(得分:0)

Why Use Generics?

使用泛型的代码比非泛型代码有许多好处:

  • 在编译时进行更强的类型检查。 Java编译器将强类型检查应用于通用代码,并在代码违反类型安全性时发出错误。修复编译时错误比修复运行时错误更容易,这很难找到。
  • 消除演员。

以下没有泛型的代码段需要强制转换:

List list = new ArrayList();
list.add("hello");
String s = (String) list.get(0);

当重写使用泛型时,代码不需要转换:

List<String> list = new ArrayList<String>();
list.add("hello");
String s = list.get(0);   // no cast
  • 使程序员能够实现通用算法。 通过使用泛型,程序员可以实现泛型算法,这些算法可以处理不同类型的集合,可以自定义,并且类型安全且易于阅读。

现在,您可以将答案与最佳答案之一进行比较(如果不是最佳答案)。