Java:如何创建包含数组的对象数组?

Java:如何创建包含数组的对象数组?,java,android,arrays,list,collections,Java,Android,Arrays,List,Collections,我想创建一个名为Product(Listproducts)的列表对象,其中Product包括以下成员: public class Product { private Double price; private String title; private String description; private List<Point>points; ... } 在应用程序中,我首先必须从XML文件创建产品列表,然后在地图上显示产品。一个产品可以位于多个位置。 有人知道创建结构(列表或

我想创建一个名为Product(Listproducts)的列表对象,其中Product包括以下成员:

public class Product {

private Double price;
private String title;
private String description;
private List<Point>points;
...
}
在应用程序中,我首先必须从XML文件创建产品列表,然后在地图上显示产品。一个产品可以位于多个位置。 有人知道创建结构(列表或链表)最合适的方法是什么吗?这种结构最容易迭代,并且可以链接列表

逻辑应按以下方式工作: 1.阅读列表中的每一点 2.检查哪个产品属于该点 3.在地图上显示产品信息


谢谢大家!

产品的
ArrayList
就足够了

但您的算法最好是以产品为中心,而不是以点为中心

  • 迭代所有产品
  • 迭代当前产品中的所有点
  • 将产品信息添加到该点

  • 这两个都很好:

    List<Product> products = new ArrayList<Product>();
    
    这里您真正要问的是“如何将XML绑定到Java对象?”


    请查看封送器和解封器接口。

    如果我理解正确,您需要能够找到给定产品的所有点,反之亦然?在这种情况下,我认为你应该增加一份清单。如果您只是要对它们进行迭代,我会使用LinkedList。

    任何实现的类,如果从返回,都可以使用Java 1.5中引入的语法方便地进行迭代。您的顶级收藏将是

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

    通过使用接口类型,
    列表
    ,您可以根据需要在以后更改为另一个
    列表
    实现。

    为什么不创建一个地图,其中键是产品,值是点列表

    Map<Product, List<Point>> productPoints = new HashMap<Product, List<Point>>();
    
    for (Product prod: productPoints) {
      for (Point point : productPoints.get(prod)) {
         // construct the point and add the product info to the point
      }   
    }
    
    Map productPoints=new HashMap();
    对于(产品产品:productPoints){
    for(Point-Point:productPoints.get(prod)){
    //构建点并将产品信息添加到点
    }   
    }
    
    这还允许您在必要时按产品轻松过滤地图上的点

    或者使用上面建议的列表界面,以便以后可以通过最少的代码更改来更改实现

    List<Product> products = new ArrayList<Product>();
    for (Product prod : products) {
      for (Point point : prod.getPoints()) {
         // construct the point and add the product info
      }
    }
    
    List products=new ArrayList();
    用于(产品生产:产品){
    对于(点:prod.getPoints()){
    //构建点并添加产品信息
    }
    }
    
    事实证明,很多人都以不同的方式理解了你的问题,所以也许澄清一下是件好事。哦,谢谢你,丹尼尔!“所有已知的实现类”部分似乎有点短。:-)
    for (Product p : products) { ... }
    
    Map<Product, List<Point>> productPoints = new HashMap<Product, List<Point>>();
    
    for (Product prod: productPoints) {
      for (Point point : productPoints.get(prod)) {
         // construct the point and add the product info to the point
      }   
    }
    
    List<Product> products = new ArrayList<Product>();
    for (Product prod : products) {
      for (Point point : prod.getPoints()) {
         // construct the point and add the product info
      }
    }