Java:如何创建包含数组的对象数组?
我想创建一个名为Product(Listproducts)的列表对象,其中Product包括以下成员: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文件创建产品列表,然后在地图上显示产品。一个产品可以位于多个位置。 有人知道创建结构(列表或
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
}
}