如题所述
import java.util.ArrayList;import java.util.List;
public class test{
public static void main(String args[]) {
int oldArr[] = {1,3,4,5,0,0,6,6,0,5,4,7,0,5,6};
List<Integer> newArr = new ArrayList<Integer>();
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] != 0) {
newArr.add(oldArr[i]);
}
}
for (int i = 0; i < newArr.size(); i++) {
System.out.print(newArr.get(i));
}
}
}
学数组怎么能不学List,自己研究研究,这东西都一个样追问
public class test{
public static void main(String args[]) {
int oldArr[] = {1,3,4,5,0,0,6,6,0,5,4,7,0,5,6};
List<Integer> newArr = new ArrayList<Integer>();
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] != 0) {
newArr.add(oldArr[i]);
}
}
for (int i = 0; i < newArr.size(); i++) {
System.out.print(newArr.get(i));
}
}
}
学数组怎么能不学List,自己研究研究,这东西都一个样追问
但是我们还没学List啊~~~换个方法呗,要不会被老师看穿的!
追答public class test{
public static void main(String args[]) {
int oldArr[] = {1,3,4,5,0,0,6,6,0,5,4,7,0,5,6};
int count = 0;
// 求新数组长度count
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] != 0) {
count++;
}
}
// 定义新数组newArr
int newArr[] = new int[count];
//新数组下标j
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 < count; i++) {
System.out.print(newArr[i]);
}
}
}
略恶心啊,就用数组
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-01-14
希望能帮助到你!
public static void main(String[] args) {
int [] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,0,5,6};
//非0个数
int count=0;
for(int i=0;i<oldArr.length;i++){
if(oldArr[i]!=0){
count =count+1;
}
}
int [] newArr =new int[count];
int j=0;
for(int i=0;i<oldArr.length;i++){
//非0数,加入新的数组中
if(oldArr[i]!=0){
newArr[j]=oldArr[i];
j++;
}
}
}追问
public static void main(String[] args) {
int [] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,0,5,6};
//非0个数
int count=0;
for(int i=0;i<oldArr.length;i++){
if(oldArr[i]!=0){
count =count+1;
}
}
int [] newArr =new int[count];
int j=0;
for(int i=0;i<oldArr.length;i++){
//非0数,加入新的数组中
if(oldArr[i]!=0){
newArr[j]=oldArr[i];
j++;
}
}
}追问
最后在那一点加入输出新数组啊?
追答得到新的数组后,你就可以随便操作新数组了。
第2个回答 2013-01-14
for循环,从后往前判断是否为0,为零就把后面的前移追问
怎么把0这个元素去掉啊?
追答后面的数前移,把0元素对应位置的值变了,就等于是去掉了
第3个回答 2013-01-14
不使用list实现的
int oldArr[] = {1,3,4,5,0,0,6,6,0,5,4,7,0,5,6};
int vv[]=oldArr.clone();
Arrays.sort(vv);
int arr0=Arrays.binarySearch(vv, 0);
int newArr[]=new int[oldArr.length-arr0-1] ;
int j=0;
for(int i=0;i<oldArr.length;i++){
if(oldArr[i]!=0){
newArr[j]=oldArr[i];
j++;
}
}
System.out.println(Arrays.toString(newArr));
int oldArr[] = {1,3,4,5,0,0,6,6,0,5,4,7,0,5,6};
int vv[]=oldArr.clone();
Arrays.sort(vv);
int arr0=Arrays.binarySearch(vv, 0);
int newArr[]=new int[oldArr.length-arr0-1] ;
int j=0;
for(int i=0;i<oldArr.length;i++){
if(oldArr[i]!=0){
newArr[j]=oldArr[i];
j++;
}
}
System.out.println(Arrays.toString(newArr));