【发布时间】:2019-03-12 13:11:35
【问题描述】:
我有一个 ArrayList 和 Objects。我在这个ArrayList 中添加了一些对象和Strings 的ArrayList。我可以轻松地从中获取对象值。现在我的问题是如何从中获取整个ArrayList 的Strings?
代码 sn-p:
Person.java
public class Person {
private String name;
private int number;
public Learn(String name, int number) {
this.name = name;
this.number= number;
}
public String getName() {
return name;
}
public int getNumber() {
return number;
}
}
现在我已经定义了对象列表
List<Object> itemsList = new ArrayList<>();
现在是时候在 itemsList 中添加一些 Person
public void addPerson(){
itemsList.add(new Person("Alex", 0000062846));
itemsList.add(new Person("Jack", 0000131332));
itemsList.add(new Person("Anjela", 0000053715));
itemsList.add(new Person("Brian", 0000085015));
}
现在,我将在 2 的索引处添加一个 字符串列表
public void addList(){
List<String> strList = new ArrayList<>();
strList.add("Hello");
strList.add("How");
strList.add("are");
strList.add("you?");
itemsList.add(2, strList);
}
好的,是时候从itemsList获取值了
Person person = (Person) itemsList.get(0);
System.out.println(person.getName); // Alex
现在我的问题是:如何从itemsList 获得strList?
【问题讨论】:
-
你为什么要做这样的数组列表?
-
我在android中有一个异构的recyclerView。我想将整个arrayList传递给这个recyclerView,它可以用来将viewPager显示为一个项目
-
List<String> strList = (List<String>) items.getList(...)但实际上,为什么? -
当您创建这样不同的列表时,在检索时您必须编写
if条件来检查index的项目实例。虽然这不是好的设计。instanceof也是一项昂贵的操作。 -
这种方法真是一团糟。为什么不创建一个包含您的类的接口类型的 ArrayList。然后让每个类实现该接口。向接口添加一个返回标识符的函数
标签: java android object arraylist arrayobject