繁体   English   中英

处理/ Java ArrayList和LinkedList异常

[英]Processing/Java ArrayList & LinkedList exception

我试图在我的一款游戏中实现寻路系统,所以我遇到了以下问题。

我在这里得到了一个不错的ArrayList:

ArrayList<PVector> path = new ArrayList<>();

现在为空,稍后在Process中填充PVector条目:

{5.0,6.0,0},{5.0,7.0,0},{5.0,8.0,0},{5.0,9.0,0}

那很好吗? 但是我不能使用它,因为我只需要{5.0,6.0,0}的5.0...。

我用path.get(0)试了一下...我只得到{5.0,6.0,0} ...所以我在这里找到了一些新的东西:

path.get(0)[0]; 还是没有用...因为表达式类型需要是一个数组,但是它解析为一个对象

那么,如何从索引中获取单个条目? :/如何从{5.0,6.0,0}获得5.0

所以您有一个PVectorArrayList ,对吗? 这意味着,当您从ArrayList get时,您将获得一个PVector 我不知道PVector,但有(希望)的方法PVector拿到第一INT( x()或东西)。

对于此类问题, 参考文献是您最好的朋友。

但是请记住path.get(0)返回一个PVector 然后,您可以使用PVector API定位其位置。 像这样:

ArrayList<PVector> path = new ArrayList<PVector>();
//add PVectors to path
PVector p = path.get(0);
float x = p.x;

请注意,我正在使用<PVector>泛型,以便ArrayList知道其拥有的对象类型。 p变量不是必需的; 我只是用它来显示path.get()返回一个PVector 您也可以一行完成:

ArrayList<PVector> path = new ArrayList<PVector>();
//add PVectors to path
float x = path.get(0).x;

声明变量时,请始终对将要存储在其中的最特殊类型的泛型类型进行参数化:

// Declaration:
List<PVector> path = new ArrayList<PVector>();

// Storing:
path.add(new PVector(...));
path.add(new PVector(...));
...

// Reading:
PVector pVector=path.get(n);
pVector.get(...)

这样,从列表中读取项目时,您将获得存储的对象完全相同的类型

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM