java语言程序设计基础篇——一维数组(2)【消除重复】

(消除重复)使用下面的方法头编写方法,消除数组中重复出现的值:

public static int[] eliminateDuplicates(int[] numbers)

编写一个测试程序,读取10个整数,调用该方法,然后显示结果。

分析:这个题目其实是上一篇中“打印不同的数”的变形,将具体的消除重复过程写成方法。

在这里会出现两个容易出错的地方:

(1)在方法的最后我又新建了一个长度为count的数组result[],将长度为numbers.length的数组f[]中的元素全部复制给result[],然后返回result。因为numbers在主函数中定义的长度为10,所以f的长度也为10,将不同的数存储进f中后,若直接返回f,则输出的数组中会用0补足保证10的长度,所以会输出比如:1 2 3 6 4 5 0 0 0 0

(2)方法的构建是为了实现代码复用,在这里应该设置f[]的长度为numbers.length;

有一个不好的地方,题目要求10个数,为了节省不必要的麻烦,必须将数组numbers[]的长度设为10,如果担心溢出而设置了大于10的初始长度,则需要将方法中的result的长度改成count-1,因为numbers后面含有不确定个数的元素0,0也被计算在不同数之内,但若前10个数之内含有0,那就尴尬了。。。

import java.util.Scanner;

public class Exercise6_15 {
	public static int[] eliminateDuplicates(int[] numbers){
		int count=0;
		int[] f = new int[numbers.length];
		
		for(int i=0;i


你可能感兴趣的:(java)