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;
}