Java Arraylist基础知识
编写一个方法,接收整数的Java Arraylist基础知识,java,arraylist,Java,Arraylist,编写一个方法,接收整数的ArrayList作为参数,并返回集合中最大整数的索引 到目前为止,我只有接收整数的ArrayList所需的代码,搜索特定整数并返回true 有人能告诉我需要什么int键吗?没有它,代码就不能工作吗 public static boolean search (ArrayList<Integer>list, int key) { for (int=0 ; i< listsize(); i++) if (list.get(i) ==
ArrayList
作为参数,并返回集合中最大整数的索引
到目前为止,我只有接收整数的ArrayList
所需的代码,搜索特定整数并返回true
有人能告诉我需要什么int
键吗?没有它,代码就不能工作吗
public static boolean search (ArrayList<Integer>list, int key) {
for (int=0 ; i< listsize(); i++)
if (list.get(i) == key) {
return true;
} return false;
}
公共静态布尔搜索(ArrayList,int键){
对于(int=0;i
这应该可以做到:
public int getIndexOfMaxValue(final List<Integer> list)
{
int maxFound = Integer.MIN_VALUE, value;
int ret = 0;
for (int index = 0; index < list.size(); index++) {
value = list.get(index);
if (value > maxFound) {
maxFound = value;
ret = index;
}
}
return ret;
}
public int getIndexOfMaxValue(最终列表)
{
int maxFound=Integer.MIN_值,值;
int-ret=0;
对于(int index=0;indexmaxFound){
maxFound=值;
ret=指数;
}
}
返回ret;
}
请注意,列表可以有重复的元素,并且此代码将返回找到的第一个最大值的索引。如果需要最后一个索引,只需将上面代码中的
>
替换为=
。变量键
是必需的,因为图中的方法似乎不是查找最大值的方法,而是返回列表是否包含某个数字的方法
图中的方法确实存在逻辑错误,因为如果第0个索引不是键
,循环体将立即返回:
if (list.get(i) == key) {
return true;
}
return false; // <- this should be after the loop
如果列表为空,该检查还将抛出NullPointerException。我们可以检查列表是否为null并返回其他内容,但在这种情况下,抛出异常可能会提供更多信息
然后,您需要保留一个“当前”最高索引的变量。我们可以将其初始化为0,因为我们已经知道列表的大小至少为1
int indexOfMax = 0;
然后我们将有一个循环,将列表中的每个索引与当前最高的索引进行比较,如果该索引处的数字较高,则重新分配该索引。我们可以从1开始循环,因为我们已经知道列表的大小必须至少为1。如果没有其他索引,循环将立即中断。如果一个列表只有一个数字,那么这个数字是最大的
for(int i = 1; i < list.size(); i++) {
最后返回我们的索引
return indexOfMax;
- 首先,您希望循环以i=2或第二个元素开始的ArrayList(假设列表中有多个元素)
- 如果有1个或少于1个元素,那么它将跳过循环并返回0索引(frst元素)。如果
- 如果列表中有多个元素,则会将第二个元素中的值与其之前的值元素进行比较,如果值更高或相同,则会将其设置为highestIntIdx李>
int highestIntIdx=0;
for(int i=1;i=list.get(i-1)){
highestIntIdx=i;
}
}
返回高精度dx;
}
}
您似乎被要求返回ArrayList中最大整数的索引
所以您需要实现一个方法liek
package com.snippet;
import java.util.ArrayList;
public class Largest {
public Largest() {
}
public int getIndexOfLargest(ArrayList<Integer> list) {
int index;
if (list == null) {
index = -1;
} else {
index = 0;
for (int i = 1; i < list.size(); i++) {
if (list.get(i) > list.get(index)) {
index = i;
}
}
}
return index;
}
package.com.snippet;
导入java.util.ArrayList;
公务舱{
公共服务{
}
public int getIndexOfLargest(数组列表){
整数指数;
if(list==null){
指数=-1;
}否则{
指数=0;
对于(int i=1;ilist.get(index)){
指数=i;
}
}
}
收益指数;
}
}关键是
search()
方法在ArrayList
中搜索的内容。呃,代码示例不符合问题要求……除非缺少)
,否则该代码不会只检查第一个索引吗?是的,缺少索引)因此代码看起来正常:)考虑空列表的边缘情况
return indexOfMax;
int highestIntIdx= 0;
for (int i = 1;i<list.size();i++){
if(list.isEmpty())
break;
if (list.get(i) >= list.get(i-1)){
highestIntIdx = i;
}
}
return highestIntIdx;
}
}
package com.snippet;
import java.util.ArrayList;
public class Largest {
public Largest() {
}
public int getIndexOfLargest(ArrayList<Integer> list) {
int index;
if (list == null) {
index = -1;
} else {
index = 0;
for (int i = 1; i < list.size(); i++) {
if (list.get(i) > list.get(index)) {
index = i;
}
}
}
return index;
}