繁体   English   中英

N元通用树— Java访谈

[英]N-ary Generic Tree — Java Interview

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

作为该站点上的大多数示例,我使用泛型来定义我的Tree / Node数据类型,以便严格使用我声明Tree类型所使用的任何数据类型。 好了,总而言之,我的结果很好,但是面试官问我为什么选择对树数据结构使用泛型。 我告诉他,因为这是实施我想在评估中使用的任何类型的树的数据类型的最佳方法。 我还告诉他,我之前做过类似的数据结构,并记得如何实现它。

我对他的第一个问题的回答还很遥远吗?

为什么要使用泛型?

与非泛型代码相比,使用泛型的代码具有许多优点:

  • 在编译时进行更强的类型检查。 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
  • 使程序员能够实现通用算法。 通过使用泛型,程序员可以实现对不同类型的集合工作的泛型算法,可以对其进行自定义,并且类型安全且易于阅读。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM