Java 正在尝试在ArrayList中查找max元素<;浮动>;,在爪哇
在Java中,我有一个带有Float元素的ArrayList,我试图找到具有最大值的元素的位置。 我尝试使用以下代码执行此操作,但无效:Java 正在尝试在ArrayList中查找max元素<;浮动>;,在爪哇,java,arraylist,max,Java,Arraylist,Max,在Java中,我有一个带有Float元素的ArrayList,我试图找到具有最大值的元素的位置。 我尝试使用以下代码执行此操作,但无效: Float obj = Collections.max(arraylist); int index=arraylist.indexOf(obj); 问题是,Collections.max() 有没有关于哪里出了问题的想法,以及我如何能以不同的方式做到这一点 更正:问题不在我想的地方,而是在向Arraylist添加元素时。我添加的值是函数的浮点结果。
Float obj = Collections.max(arraylist);
int index=arraylist.indexOf(obj);
问题是,Collections.max()
有没有关于哪里出了问题的想法,以及我如何能以不同的方式做到这一点
更正:问题不在我想的地方,而是在向Arraylist添加元素时。我添加的值是函数的浮点结果。我在添加函数之前打印函数的结果,然后使用通常的arraylist.add(value)
code,但是当我要求在添加后打印arraylist的值时,返回一个完全不同的值:/IndexOf返回此列表中指定元素第一次出现的索引,或者-1,如果此列表不包含元素,并且不是您要查找的最大值
检查此处的文档)
您还必须指定存储在ArrayList上的元素的类型。尝试:
... new ArrayList<Float>() ; ..
。。。新的ArrayList()。。
希望您添加了以下两个库
import java.util.ArrayList;
import java.util.Collections;
你能试试这个代码吗?而不是保存到浮动对象
Object obj = Collections.max(arrayList);
我找到了,伙计们!
问题是,我不是将函数的结果存储在浮点值中然后使用它,而是在每次需要该值时调用该函数,以节省内存空间。
但是我忘记初始化函数的一个值,所以每次它都给我一个不同的起始值,所以每次调用函数时它都返回不同的结果
非常感谢您的帮助,如果没有你的问题,我可能要花更长的时间才能找到它,这让我想到了真正的问题:)你得到的结果和预期的结果是什么?创建一个简单的用例,它不起作用,然后发布到这里。obj
和index
有哪些值?声明的类型是什么arraylist
?可能的重复项事实上,它应该返回max\u元素的索引,该元素是通过Collection.max()找到的,但是Collections.max()确实(或至少应该)返回最大值,根据可比较的实现,我认为他用int而不是Float来定义ArrayList()。请检查@ALJIMohamed“ArrayList()with int”是什么意思?ArrayList()
这意味着ArrayList应该存储int。如果你在上面加上浮点数,它将被向下(或向上)取整!类似的是,我确实添加了库。我试图将其更改为Object,但仍然无法正常工作:S