现在有如下的一个数组: 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-06-23 09:09:24 浏览: 163
可以使用一个新的数组来存储不为0的值,具体步骤如下:
1. 遍历原数组,统计不为0的元素个数,即新数组的长度。
2. 创建新数组,长度为上一步统计的不为0的元素个数。
3. 再次遍历原数组,将不为0的元素存入新数组中。
4. 返回新数组。
代码实现如下:
```java
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[count];
int index = 0;
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] != 0) {
newArr[index++] = oldArr[i];
}
}
```
最终得到的新数组为:
```
{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}
给定一个数组 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}
可以使用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);
}
```
阅读全文