Java 较大数组的最后一个元素索引
我想在第四位加上“d”。如何获取大于数组中最后一个有效元素索引的索引Java 较大数组的最后一个元素索引,java,arrays,Java,Arrays,我想在第四位加上“d”。如何获取大于数组中最后一个有效元素索引的索引someArray.length-1返回9。我想获得第四名 编辑: 代码应为: char[] someArray = new char[10]; someArray[0] ='a'; someArray[0] ='b'; someArray[0] ='c'; 在这种情况下,我知道第四个索引是免费的。如果我有: char[] someArray = new char[10]; someArray[0] ='a'; someArr
someArray.length-1
返回9。我想获得第四名
编辑:
代码应为:
char[] someArray = new char[10];
someArray[0] ='a';
someArray[0] ='b';
someArray[0] ='c';
在这种情况下,我知道第四个索引是免费的。如果我有:
char[] someArray = new char[10];
someArray[0] ='a';
someArray[1] ='b';
someArray[2] ='c';
首先,但在执行
someArray[0]=..
时,在数组的第一个位置设置字符,并在代码的这个位置重写该值
其次,您的问题的答案是通过执行someArray[3]=“d”
。
只要没有达到超出数组大小的索引,数组中的所有元素都是有效的。首先,但是执行
someArray[0]=..
可以在数组的第一个位置设置字符,并在代码的这个位置重写该值
其次,您的问题的答案是通过执行someArray[3]=“d”
。
只要没有达到超出数组大小的索引,数组中的所有元素都是有效的。数组中的索引从0开始 当您执行
someArray.length-1
时,它采用使用char[]someArray=new char[10]初始化时的长度代码>
如果您希望到达数组中的第四个位置,请从第0个索引开始计数,您会发现需要在数组中使用索引3,因此您可能希望使用
someArray[3]=所需的\u值
数组中的索引从0开始
当您执行someArray.length-1
时,它采用使用
char[]someArray=new char[10]初始化时的长度代码>
如果您希望到达数组中的第4个位置,从第0个索引开始计数,您会发现需要在数组中使用索引3,因此您可能希望使用所需的\u值
someArray[3]=您可以使用一种方法来查找数组中第一个空位置的索引号:
void abc(int[] x){
//I want to add element in the next free index of the array x.
}
您可以使用以下方法查找数组中第一个空位置的索引号:
void abc(int[] x){
//I want to add element in the next free index of the array x.
}
这是我认为您需要的,它类似于@Mohsen答案,只是我认为这将更具可读性和直截了当
public static int getFirstEmptyIndex(char[] arr){
int index=0;
for(char a:arr){
if(a==0)
break;
else
index++;
}
return index;
}
public static void main(String[] args) {
char[] someArray = new char[10];
someArray[0]='a';
someArray[1]='b';
someArray[2]='c';
someArray[getFirstEmptyIndex(someArray)]='d';
System.out.println(someArray[3]);
}
所以,如果没有可用空间,您将得到-1,而不是得到0并意外地替换索引0值
奖金::
如果要以数组的形式按升序获取所有可用空间,请查看以下内容:
顺便说一句,这不是用于此类操作的最佳算法,请允许任何人随意改进。这是我认为您需要的,类似于@Mohsen答案,只是我认为这将更具可读性和直观性
public static int getFirstEmptyIndex(char[] arr){
int index=0;
for(char a:arr){
if(a==0)
break;
else
index++;
}
return index;
}
public static void main(String[] args) {
char[] someArray = new char[10];
someArray[0]='a';
someArray[1]='b';
someArray[2]='c';
someArray[getFirstEmptyIndex(someArray)]='d';
System.out.println(someArray[3]);
}
所以,如果没有可用空间,您将得到-1,而不是得到0并意外地替换索引0值
奖金::
如果要以数组的形式按升序获取所有可用空间,请查看以下内容:
顺便说一句,这不是此类操作的最佳算法,请允许任何人随意改进。所有字符数组元素都是有效的,即使您没有显式初始化它们。您必须记住(例如,通过存储在变量中)有多少元素已初始化。顺便说一句,您只初始化了第一个元素,但初始化了三次。您是否尝试了someArray[3]?检查my@Siddhart Shankar,你想获得数组的即时自由索引吗?这意味着在最后一个被占用的空间之后还有下一个空空间吗?再一次,没有空闲索引这样的东西。您必须通过保留一个值为已使用部分长度的变量来跟踪“未使用”的位置。不,它不会向数组中添加值。它设置数组元素的值。数组始终具有相同的大小。如果您不希望出现这种行为,请使用类似于ArrayList
的东西。或者,如果希望U+0000('\0'
)的值表示“未使用”,则可以找到具有该值的第一个索引。但您并不是真的在数组中“添加”或“删除”。所有字符数组元素都是有效的,即使您没有显式初始化它们。您必须记住(例如,通过存储在变量中)有多少元素已初始化。顺便说一句,您只初始化了第一个元素,但初始化了三次。您是否尝试了someArray[3]?检查my@Siddhart Shankar,你想获得数组的即时自由索引吗?这意味着在最后一个被占用的空间之后还有下一个空空间吗?再一次,没有空闲索引这样的东西。您必须通过保留一个值为已使用部分长度的变量来跟踪“未使用”的位置。不,它不会向数组中添加值。它设置数组元素的值。数组始终具有相同的大小。如果您不希望出现这种行为,请使用类似于ArrayList
的东西。或者,如果希望U+0000('\0'
)的值表示“未使用”,则可以找到具有该值的第一个索引。但您并不是真的在阵列中“添加”或“删除”。谢谢@莫森R.阿克达姆谢谢@莫森R.阿克丹