首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二维arrayList of ArrayList

二维arrayList of ArrayList
EN

Stack Overflow用户
提问于 2013-01-06 15:25:53
回答 3查看 358关注 0票数 0

我对多路点的ArrayList有问题。我只有一艘船。一艘船有航路。

代码语言:javascript
复制
public static ArrayList<Waypoint> _waypoints = new ArrayList<>();

若要添加新的路径点,请使用

代码语言:javascript
复制
 Screen._waypoints.add(
                        new Waypoint(
                           12,20
                        )
                   );
 Screen._waypoints.add(
                        new Waypoint(
                           15,50
                        )
                   );
 Screen._waypoints.add(
                        new Waypoint(
                           17,90
                        )
                   );

这意味着:

  1. ->船12,20
  2. -> 15,50船
  3. -> 17,90号船

我已经修改了我的游戏,我增加了船类型,这意味着每种类型的船都有不同的路径点。

我修改了路径点初始化。

代码语言:javascript
复制
public static ArrayList<ArrayList<Waypoint>> _waypoints = new ArrayList<ArrayList<Waypoint>>();

我想要创建这样的结构:

船舶->木->阵列路点列表

例如,我有两种类型的船->木材和海盗船。

->木船

  1. ->船12,20
  2. -> 15,50船
  3. -> 17,90号船

->海盗船

  1. ->船12,20
  2. -> 15,50船
  3. -> 17,90号船

为了获得木材的arrayList,我想使用以下方法:

代码语言:javascript
复制
waypoints.get("wood");

我不知道如何用二维arrayList of arrayList实现它

谢谢,

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-06 15:30:54

你在找Map

代码语言:javascript
复制
public static Map<String, List<Waypoint>> wayPoints = new HashMap<String, List<Waypoint>>();

不过,更好的方法是创建您自己的ShipType类,并在船本身上存储一个路径点列表。更有可能的是,您将拥有更多特定于一种ship类型的属性。这使您可以将这些合并到一个类中,从而实现一个更易于管理的设计。

代码语言:javascript
复制
public class ShipType {
    private List<Waypoint> wayPoints = new ArrayList<Waypoint>();
    /* ... */
}

然后,您的Ship可以有一个ShipType,而不是其ship类型的“仅”名称。

代码语言:javascript
复制
public class Ship {
    private ShipType type;
    /* ... */
}

然后,只需保持MapShipType,以正确地构造您的Ship

代码语言:javascript
复制
public static Map<String, ShipType> ships = new HashMap<String, ShipType>();
// Register ship types
ships.put("wood", new WoodShipType());
// Construct a ship
Ship myShip = new Ship();
myShip.setType(ships.get("wood"));

或者,您可以使用带有重载方法的enum来表示固定数量的ship类型,并完全摆脱该static集合。

票数 3
EN

Stack Overflow用户

发布于 2013-01-06 15:31:07

使用Map怎么样?

代码语言:javascript
复制
Map<String, List<WayPoint>> wayPoints = new HashMap<String, List<WayPoint>>();
wayPoints.put("wood", new ArrayList<WayPoint>());

然后通过以下方法获得木材的arrayList:

代码语言:javascript
复制
List<WayPoint> woods = wayPoints.get("wood");
票数 3
EN

Stack Overflow用户

发布于 2013-01-06 15:35:42

您可以使用HashMap

代码语言:javascript
复制
 public  HashMap<String,ArrayList<Waypoint>> waypoints=new HashMap<String,ArrayList<Waypoint>>();

waypoints.put("wood",array list objetct); //insertion

ArrayList<Waypoints> obj=waypoints.get("wood");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14183580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档