【问题标题】:Java (Android) : List with multiples types (String; Integer; Integer)Java(Android):具有多种类型的列表(字符串;整数;整数)
【发布时间】:2016-09-05 20:53:44
【问题描述】:

正如您在标题中看到的那样,我想要一个可以存储多种类型的列表。比如:

List <String, Integer, Integer> myList;

myList.add("something", 1337, 123);

感谢您的帮助。

【问题讨论】:

  • List&lt;Object&gt;。完毕。不过,严肃地说。 Integer, Integer&gt; 没有意义。
  • 您可以使用保存数据的类...
  • @cricket_007 我的代码:List&lt;Object&gt; myList; myList.add("test", 1); 它说“变量'myList'可能没有被初始化”。而且我是 java 新手...
  • 最好创建一个自定义类型并创建该类型的List。这三个元素是干什么用的?
  • 该代码将抛出 NullPointerException。你必须做一个new ArrayList&lt;Object&gt;()

标签: java string list types elements


【解决方案1】:

我想要一个可以存储多种类型的列表

最简单的方法是这样的:

List <Object> list = new ArrayList<Object>();
        list.add("Stringa");
        list.add(5);

问题是如果你需要操纵它们,你应该非常注意:

        if(list.get(0) instanceof String){
            System.out.println(list.get(0));
        }
        else if(list.get(0) instanceof Integer){
            list.set(0, (Integer)list.get(0)+10);
        }

但在这里阅读:

List <String, Integer, Integer> myList;

也许你需要一些类来用作元组:

public class Trio{
    String string;
    int value1;
    int value2;

    public Trio(String string, int value1, int value2) {
        this.string = string;
        this.value1 = value1;
        this.value2 = value2;
    }
}

然后使用这个:

List<Trio> list = new ArrayList<Trio>();
list.add(new Trio("String", 1, 2);

【讨论】:

    【解决方案2】:

    除了List&lt;Object&gt;,您不能将多个不相关的类型添加到Collection&lt;?&gt;。另外,myList.add("something", 1337, 123); 不是有效的语法。

    我想您正在加载一些 Android 适配器,因此我建议您创建一个可以在其中包装数据的类。

    public class StringIntInt {
        String s;
        int i1, i2;
    
        public StringIntInt(String s, int i1, int i2) {
            this.s = s;
            this.i1 = i1;
            this.i2 = i2;
        }
    }
    

    用例:

    List<StringIntInt> myList = new ArrayList<StringIntInt>();
    myList.add(new StringIntInt("something", 123, 1337);
    

    【讨论】:

    【解决方案3】:
     class myClass   
       {
          public String myString;
          public Int numb1;
          public Int numb2;
       } 
    

    ...

    List<myClass> TheList = new List<myClass>;
    

    你可以定义一个结构或类来保存你的信息,然后创建一个列表

    【讨论】:

      猜你喜欢
      • 2018-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-29
      • 2021-11-03
      • 2019-09-19
      • 1970-01-01
      相关资源
      最近更新 更多