簡體   English   中英

在ArrayList的一個索引中添加兩種不同的數據類型 - java

[英]Adding two different datatype in one index of ArrayList - java

是否可以在 arraylist 中存儲兩種不同的數據類型?

例如

 ArrayList<String,int> arr = new ArrayList<>();

如果我想將字符串和整數存儲到 arrayList 的一個索引中。 我該怎么做以及我如何才能訪問它?

為此,您應該將(字符串和整數)都包含在一個以字符串和整數作為字段的對象中。 它可能看起來像:

public class StringAndInteger {
  public String string;
  public Integer integer;
}

我建議給它一個有意義的名字,將字段設置為私有並添加 getter 和 setter。

您可以將其設為列表列表。

        List<List<?>> list = new ArrayList<>();
    list.add(Arrays.asList("str1", 8));
    list.add(Arrays.asList("str91", 98));

    System.out.println(list);

當然,更好的方法是使用 Map 而不是 this。 您也不能將原始類型與集合一起使用。

ArrayList uses Array as its under-lying data structure, which can not add heterogeneous data-types. To achieve so, Just Make a class in your code. Declare the instance variables in this class. If you want to add String and Integer Then write it like this:

public class YourClass{
//Your code
...

//Create a class in your existing class. It is just used like a data-type.
static class SampleClass {
  public String str;
  public Integer intgr;
}

//Now You can use this class like a data-type
public void myMethod(){
ArrayList<SampleClass> myList=new ArrayList();
//add values.
SampleClass ob1=new SampleClass('name1',12345);
SampleClass ob2=new SampleClass('name2',12345234);
myList.add(ob1);
myList.add(ob2);
myList.add(new SampleClass('name3', 12));

//get values
for(int i=0;i<myList.size();i++){
String stringValue=myList.get(i).str;
String intValue=myList.get(i).intgr;
system.out.println(stringValue);
system.out.println(intValue);
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM