是否可以在没有循环的情况下从自定义类的Arraylist中获取产品名称的Arraylist

时间:2016-03-17 10:02:53

标签: java android arrays

假设我有课程:

class Product {
   int pId;
   String pName;
   int pPrice;
}

我有Arraylist<Product>,因此我可以在不包含循环的情况下获得仅包含产品名称ArrayList<String>

借助游标或集合工具或android中的任何其他东西来说。

2 个答案:

答案 0 :(得分:1)

Java 8 中,您可以在产品列表中使用streammap功能。

假设你有:

List<Product> productList = new ArrayList<Product>();
productList.add(new Product(1, "test", 100));
productList.add(new Product(1, "test2", 100));

您可以使用此方法将其映射到List<String>

List<String> productNames = productList.parallelStream()
                              .map(Product::getPName)
                              .collect(toList());

修改

答案 1 :(得分:0)

这种方式可能会有所帮助:

class Product {
    int pId;
    String pName;
    int pPrice;
}

List<Product> products = new ArrayList<>();

// add products

List<String> names = new AbstractList<String>() {
    @Override
    public String get(int location) {
        return products.get(location).pName;
    }

    @Override
    public int size() {
        return products.size();
    }
}