你会如何创建一个混合布尔和字符的数组列表?

use*_*935 0 java collections

在使用ArrayList时,我有点新鲜.我知道如何使用字符串创建一个ArrayList,我知道如何用Integers创建一个.我想知道,我如何创建一个包含两种类型的ArrayList,例如Doubles和Chars(但没有别的).

这就是我的意思,

ArrayList<double && char> DCList = new ArrayList<double && char>();
Run Code Online (Sandbox Code Playgroud)

显然它不是有效的Java代码,所以我的问题是,我该如何正确表达它?

aio*_*obe 6

以下是您的一些事实:

  • 您不能将原始值放在Collection中(泛型类型只能绑定到引用类型)

  • 如果你一定需要把两个charS和doubleS(或CharactersDoubles考虑上述点考虑在内),你需要申报清单包含的至少常见的亚型CharacterDoubleObject:

    List<Object> charsAndDoubles = new ArrayList<Object>();
    
    Run Code Online (Sandbox Code Playgroud)

    但是,这不会禁止字符串和整数.

  • 以下是我将如何解决它:

    class MyDatatype {
        ....
    }
    
    class MyDatatypeCharVariant extends MyDatatype {
        char data;
    
        ...
    }
    
    class MyDatatypeDoubleVariant extends MyDatatype {
        double data;
    
        ...
    }
    
    Run Code Online (Sandbox Code Playgroud)

    然后将列表声明为:

    List<MyDatatype> someList = new ArrayList<MyDatatype>();
    
    Run Code Online (Sandbox Code Playgroud)