Java初学者求助 现在有如下的一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:intnewArr[]={1,3,4,5,6,6,5,4,7,6,7,5};...
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:
int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5}; 展开
int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5}; 展开
4个回答
展开全部
我来给你手写一个类实现它,兄弟
public class arrChange{
public static void main(String arg[]){
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 k=0;//用于计算newArr[]下标的变量
for(int i=0;i<oldArr.length;i++){
if(oldArr[i]!=0){
newArr[k]=oldArr[i];
k++;
}
}
}
}
public class arrChange{
public static void main(String arg[]){
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 k=0;//用于计算newArr[]下标的变量
for(int i=0;i<oldArr.length;i++){
if(oldArr[i]!=0){
newArr[k]=oldArr[i];
k++;
}
}
}
}
追问
谢谢你老兄!!!
追答
不客气
展开全部
不用集合类,为了新的数组不会生成多余的空间,可以这样:
public static void main(String[] args) {
int[] a = {0,4,7,2,65,0,25,57,0,5,0};
int num = 0;
for(int i = 0; i < a.length; i ++) {
int k = i;
for(int j = i+1; j < a.length; j++) {
if(a[k] > a[j]) {
k = j;
}
}
if(k != i) {
int temp = a[i];
a[i] = a[k];
a[k] = temp;
}
if(a[i] == 0) {
num++;
}
}
int[] b = new int[a.length-num];
for(int i =0; i < b.length; i++) {
b[i] = a[num];
num++;
System.out.print(b[i] + " ");
}
}
public static void main(String[] args) {
int[] a = {0,4,7,2,65,0,25,57,0,5,0};
int num = 0;
for(int i = 0; i < a.length; i ++) {
int k = i;
for(int j = i+1; j < a.length; j++) {
if(a[k] > a[j]) {
k = j;
}
}
if(k != i) {
int temp = a[i];
a[i] = a[k];
a[k] = temp;
}
if(a[i] == 0) {
num++;
}
}
int[] b = new int[a.length-num];
for(int i =0; i < b.length; i++) {
b[i] = a[num];
num++;
System.out.print(b[i] + " ");
}
}
追问
谢谢你老兄!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用一个循环for来遍历这个数组,然后判断if(oldArr[i]==0)然后就去掉了。
当然是在要定义一个新的数组变量,把不等于0的+进去就是了。
思路就是这样。
当然是在要定义一个新的数组变量,把不等于0的+进去就是了。
思路就是这样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
List list = new ArrayList();
for(int i = 0 ; i<oldArr.length ; i++){
if(oldArr[i] != 0 )
list.add(oldArr[i]);
}
int newArr[] = list.toArray(); // 我记得list 有一个直接获得数据的方法 , 要是没有的话 , 你再遍历一下list 把他的值给 newArr .
for(int i = 0 ; i<oldArr.length ; i++){
if(oldArr[i] != 0 )
list.add(oldArr[i]);
}
int newArr[] = list.toArray(); // 我记得list 有一个直接获得数据的方法 , 要是没有的话 , 你再遍历一下list 把他的值给 newArr .
追问
你所用的方法是采用类库提供的方法么?我想采用的是自己写的一般的方法,而不是类库中后提供的方法!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询