有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是存储各种变量的好方法吗?

    Comparable w[] = new Comparable[5];
    w[0] = 1;
    w[1] = "string";
    w[2] = 2.0;

这样好吗?事实上,它为什么有效(我只是随机尝试过)?可能是因为可比扩展了整数、字符串、双精度等。?那又怎样


共 (6) 个答案

  1. # 1 楼答案

    Is it a good way?

    如果你想不出做某事的好理由,那可能不是个好主意

    Maybe because Comparable extends Integers, Strings, Doubles etc.?

    数字和字符串实现可比性,但您的想法是正确的

    So what?

    在Java中可以做很多奇怪的事情,但大多数都没有用处

    在这种情况下,它不是特别有用,因为对象之间不可比较。e、 g.阵列。排序(w);不行

  2. # 2 楼答案

    我觉得这不是个好主意。如果必须存储这样的“异构”集合,请使用Object[]。 将Comparable指定为公共接口也会给出错误的建议,即可以对数组进行排序,这是错误的,因为不同的比较器无法协作

  3. # 3 楼答案

    这是可行的,但没有多大意义IntegerStringDouble确实实现了Comparable接口,但是是以一种通用的方式实现的(即Integer实现了Comparable<Integer>String实现了Comparable<String>等等)

    因此,如果你正试图实现这一目标,你将无法将StringDouble进行比较

  4. # 4 楼答案

    使用类的接口定义要存储在数组或集合中的对象的常用属性

    如果直接或不直接使用compareTo方法,例如通过对数组排序,请使用Comparable。如果不以实物为准,读者就不会那么困惑了。如果没有,请注意,选择Comparable而不是Object这不会以一种有用的方式限制数组中的对象,因为有许多类实现了它(而且它正在增长)

    但请注意,您很少需要在数组中存储字符串、双精度和整数。你必须这样做的事实表明你应该检查你的设计

  5. # 5 楼答案

    Comparable w[] = new Comparable[5];
    

    这将构造一组实现可比较接口的项。 所有标准类型的包装器都实现了这个接口,所以所有东西都可以存储在那里。 这样做的缺点是,compare方法用于在同一类的对象之间进行比较。把不同类别的物品放在这个容器里会破坏这个目的

    因此,使用可比较的接口作为容器的基本类型可能不是一个好主意。因为这毫无意义

    更好的选择是使用Object[],它是所有Java对象的超类型

  6. # 6 楼答案

    -所有Wrapper Objects实现Comparable,这就是它的工作原理

    -此外,当您只需要根据一个参数进行排序时,Compariable是很好的,但是当您想要以多种方式进行排序时,最好使用Comparator