Collections 在Processing.js中使用java对象集合

Collections 在Processing.js中使用java对象集合,collections,arraylist,processing,processing.js,Collections,Arraylist,Processing,Processing.js,我需要Collections对象,但Processing.js不断地抛出一个错误,说Collections并没有定义,好像它没有将其识别为对象。我试图通过使用Collections.min函数来找到ArrayList的最小值,因此这将非常有用 ArrayList<int> aaa = new ArrayList<int> (); println(aaa); Collections<int> fff = new Collections<int> ()

我需要Collections对象,但Processing.js不断地抛出一个错误,说Collections并没有定义,好像它没有将其识别为对象。我试图通过使用Collections.min函数来找到ArrayList的最小值,因此这将非常有用

ArrayList<int> aaa = new ArrayList<int> ();
println(aaa);
Collections<int> fff = new Collections<int> ();
println(fff);
arraylistaaa=newarraylist();
println(aaa);
集合fff=新集合();
println(fff);

Collections对象不是一个处理API对象,而是一个底层Java对象,并非所有处理代码的解释器都可以使用它(因为并非所有解释器都基于JVM)

如果要找到最小值,需要三行代码:

int minval = aaa.get(0);
for(int v: aaa) {
  if(v < minval) { minval = v; }
}
int minval=aaa.get(0);
对于(INTV:aaa){
如果(v
完成后,我们得到了最小值。如果我们将其封装在函数中,我们可以在任何需要的地方使用它:

int getMinValue(ArrayList<Integer> numberlist) {
  int minval = numberlist.get(0);
  for(int v: numberlist) {
    if(v < minval) { minval = v; }
  }
  return minval;
}
int getMinValue(ArrayList numberlist){
int minval=numberlist.get(0);
for(int v:numberlist){
如果(v
我只是想知道这是否可以实现,因为我试图找到一种更有效地找到最小值的方法。由于某种原因,这个for循环和所有foreach循环在chrome中都需要很长时间。我需要求一个数组的最小值,它有2000个点,每秒30次,乘以12个图。我转而使用动态编程,但很快就注意到我也无法做到这一点,因为我的数组每次都会发生轻微的变化,所以我不得不尝试其他方法。谢谢你的回答!作为一名程序员:不,你不需要。如果你需要在12张图上每秒30次计算2000点的最小值,你需要后退一步,问问你到底想要实现什么。至少,只有当点发生变化时,才计算新的最小值。例如,您向每个点注册的点更改侦听器,这样当其值更改时,它将使用更新的位置值调用您的侦听器,而不会运行“太多次”。第二点注意:这是很好的,具体的信息,应该在你的问题中=)嗯…好的,当然,但仅供参考,因为我们正在建设性地相互批评,结果证明max()函数在简单数组上工作,所以这就是我要寻找的实际答案。没有回答这个特定的问题,但它肯定比必须使用for循环要好得多。是的,尽管每秒30次,它可能仍然会大大降低草图的速度(max函数实现为与在arraylist上运行的for循环相同的for循环-坦白说,我是Pjs开发人员)哦,太棒了!我一直在努力加速我的动画,因为它达到了一个点,即使在每秒30帧的速度下,它也会减慢到15帧,并开始显得滞后。这可能是一个徒劳的要求,但你有任何其他提示,先进或不,我可以期待得到更多的速度?我跟踪了我的电源接收器,找到了每秒调用.add和.remove 16次的图形(我每秒更新一次这个小图形),然后是15次,因为一次运行15个画布。它是16,因为它显示4条数据线,并弹出/添加最新值以保持完整的720点阵列。