现在有如下一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5},要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5}
时间: 2023-10-29 10:08:18 浏览: 135
可以使用ArrayList来实现该功能,先遍历原数组,将不为0的元素添加到ArrayList中,最后将ArrayList转换为数组即可得到新数组。
以下是示例代码:
```
int oldArr[] = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] != 0) {
list.add(oldArr[i]);
}
}
int[] newArr = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
newArr[i] = list.get(i);
}
```
相关问题
现在有如下一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5},要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5}
给定一个数组 int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5},要求将数组中值为 0 的项去掉,将不为 0 的值存入一个新的数组,生成的新数组为 int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5}。可以通过遍历原数组,统计值为 0 的项数,然后给新数组分配内存空间,再遍历原数组将不为 0 的值存入新数组中即可。具体实现可以参考以下代码:
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int count = 0;
for(int i=0; i<oldArr.length; i++){
if(oldArr[i] == 0){
count++;
}
}
int[] newArr = new int[oldArr.length - count];
int j = 0;
for(int i=0; i<oldArr.length; i++){
if(oldArr[i] != 0){
newArr[j] = oldArr[i];
j++;
}
}
// 输出新数组
for(int i=0; i<newArr.length; i++){
System.out.print(newArr[i] + " ");
}
现在有如下一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}; 要求将以上数组中的 0 项去掉,将不为 0 的值存入一个新的数组,生成新的数组为 int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5}
可以使用两个指针,一个指向旧数组的开头,一个指向新数组的开头。遍历旧数组,如果当前元素不为 0,就将其存入新数组,并将新数组指针向后移动一位。
代码如下:
```java
int oldArr[] = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int[] newArr = new int[oldArr.length];
int newIndex = 0;
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] != 0) {
newArr[newIndex] = oldArr[i];
newIndex++;
}
}
// 新数组的长度为 newIndex
int[] result = Arrays.copyOf(newArr, newIndex);
```
阅读全文