在给定位置返回数组元素的方法?

时间:2014-02-12 06:23:18

标签: java

我正在尝试编写一个接受int参数的方法,如果传递的int参数小于数组长度,则返回给定的数组元素。如果有人能指出我正确的方向,我将不胜感激。

代码:

String[] fruits = {"jan","feb","mar","apr","may","jun","jul","aug","sept","oct"};



public String getStr( int pos ){

    String str;

    if( pos <= fruits.length){

        for( int i=0; i < fruits.length; ++i){          
            if(fruits[i] == pos){

                str = fruits[pos];

            }//IF
        }
    }//IF
    else{
        str = null;
    }
    return str;
}//METOD

6 个答案:

答案 0 :(得分:1)

索引可以访问数组元素。所以你只需要检查给定的索引是否在数组的边界内,然后返回数组元素或null。这可以写成一行:

condition ? value_if_true : value_if_false

因此,您的方法将如下所示:

public String getStr(int pos) {
    return (pos >= 0 && pos < fruits.length) ? fruits[pos] : null;
}

答案 1 :(得分:1)

  1. 阵列数据结构基于数组索引提供随机访问。因此,您无需迭代数组,直到达到所需位置。您可以直接访问它。
  2. 在Java中(与大多数编程语言一样),数组是0索引。这意味着对于大小为n的数组,数组的索引将在0到n-1之间变化。因此,任何索引&lt; 0或index&gt; = n都将导致ArrayIndexOutofBounds异常。
  3. 记住这些事情,以下代码将按预期工作:(假设'pos'代表基于0索引计数的数字)

    String[] fruits = {"jan","feb","mar","apr","may","jun","jul","aug","sept","oct"};
    public String getStr(int pos) {
        if( pos < fruits.length && pos > -1){
            return fruits[pos];
        }
        return null;
    }
    

答案 2 :(得分:0)

检查那个数组的索引是否有效,然后发送元素为null。

return (pos >-1 && pos < fruits.length) ? fruits[pos] : null;

答案 3 :(得分:0)

为什么需要迭代。数组就在那里,你可以通过索引找到一个元素。

只需使用

if( pos <= fruits.length){
    str = fruits[pos];
}//IF
else{
    str = null;
}

答案 4 :(得分:0)

public void String getStr(int pos) {
    String str;

    if (pos >= 0 && pos < fruits.length)
    {
        return fruits[pos];
    }
    else
    {
       return null;
    }
} // METHOD

答案 5 :(得分:0)

问自己这些问题:

  • 如何获得数组中的特定元素?
  • 您如何检查pos参数是否太大或太小(提示:使用长度)

只考虑这两个问题并尝试将它们放入代码中。其他人已经给出了答案(他们不应该这样做,因为你没有要求),但仍然问自己这些问题,以提高你对情况的理解。