gpt4 book ai didi

java - 定义没有特定类型的集合

转载 作者:行者123 更新时间:2023-12-01 17:35:02 25 4
gpt4 key购买 nike

    public static void main(String[] args) {
Set vals = new TreeSet();
vals.add("one");
vals.add(1);
vals.add("two");
System.out.println(vals);
}

(i)-定义一个集合而不给它一个类型意味着什么?出于什么目的它的用途是什么?

(ii)-我可以通过任何方式向集合添加不同类型吗?

这是一个示例 - 尽管它警告我,但没有编译错误。

但是,异常(exception)的是,存在运行时错误。

最佳答案

  1. 在不指定类型参数的情况下定义集合(或任何类型化类)称为使用原始类型。它的存在是为了向后兼容,不应在新代码中使用。如果有效地消除了泛型对类型的所有影响。
  2. 通常,您可以将集合定义为接受 Object :然后它将接受所有值:Set<Object> vals = new HashSet<Object>()但是这不适用于 TreeSet ,因为它需要其值为 Comparable 与彼此。 如果您想向同一个 TreeSet 添加任意类型(这通常是一些架构问题的标志,即设计味道),那么您需要实现自己的 Comparator 可以比较任意元素并将其传递到 the appropriate TreeSet constructor .

关于java - 定义没有特定类型的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7389914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com