Java(Android):具有多种类型的列表(String; Integer; Integer)

时间:2016-05-10 18:10:01

标签: java string list types elements

正如你在标题上看到的,我想要一个列表,我可以存储多种类型。类似的东西:

List <String, Integer, Integer> myList;

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

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

除了List<Object>之外,您无法向Collection<?>添加多个不相关的类型。另外,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);

答案 1 :(得分:0)

 class myClass   
   {
      public String myString;
      public Int numb1;
      public Int numb2;
   } 

...

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

您可以定义一个包含您的信息的结构或类,然后创建一个List

答案 2 :(得分:0)

  

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

最简单的方法是:

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);