A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

好烦啊,我是0基础,感觉有点跟不上课程了.

(1)定义一个int类型的一维数组,内容为{6,2,9,6,1,2,6,7,8}
(2)去除上面定义的数组中的重复元素,打印最终结果{6, 2, 9, 1, 7, 8}

11 个回复

倒序浏览
加油,努力,我也是零基础
回复 使用道具 举报
今天老师讲了,可惜我忘了{:2_41:}
回复 使用道具 举报
同新手,想了半天用数组不会做啊。。。。。。最后能想到的就是。。。。把数组遍历到一个集合里用remove做{:2_41:}
回复 使用道具 举报
public class Test03_2 {
        public static void main(String[] args) {
                int[] arr = {6,2,9,15,1,5,20,7,18};
                printArr(arr); // 交换并打印
        }
        //定义交换数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组
        //注意:方法可以嵌套调用但是不能嵌套定义
        public static void printArr(int[] arr) {
                //数组最大元素与最后一位元素进行交换
                int maxIndex = getMaxIndex(arr);
                int minIndex = getMinIndex(arr);
                swap(arr,maxIndex,arr.length-1);
                swap(arr,minIndex,0);
                for (int i : arr) { // 遍历数组输出
                        System.out.print(i + " ");
                }
        }
        //定义交换数组指定位置的元素的方法
        public static void swap(int[] arr,int i,int j) {
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
        }
        //定义方法获取数组最大值对应的索引位置
        public static int getMaxIndex(int[] arr) {
                // 假设数组的第一个元素为最大值
                int index = 0;
                for (int i = 0; i < arr.length; i++) { // 遍历数组
                        if (arr[index] < arr[i]) {
                                index = i;
                        }
                }
                return index; // 返回最值索引
        }
        //定义方法获取数组最小值对应的索引位置
        public static int getMinIndex(int[] arr) {
                // 假设数组的第一个元素为最小值
                int index = 0;
                for (int i = 0; i < arr.length; i++) { // 遍历数组
                        if (arr[index] > arr[i]) {
                                index = i;
                        }
                }
                return index; // 返回最值索引
        }
}
回复 使用道具 举报
方法应该有很多,一看到题目第一想法是for循环,用第一个数字去跟后面的逐个比较,同样的就删除,然后第二个、第三个、这样循环
回复 使用道具 举报
霸道总裁爱村花 发表于 2016-3-26 00:01
方法应该有很多,一看到题目第一想法是for循环,用第一个数字去跟后面的逐个比较,同样的就删除,然后第二 ...

数组可以删{:2_41:}
回复 使用道具 举报
不明白你是什么意思??
回复 使用道具 举报
zhang3216858 发表于 2016-3-25 23:53
public class Test03_2 {
        public static void main(String[] args) {
                int[] arr = {6,2,9,15,1,5,20,7,1 ...

最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组?这个就可以除掉重复的元素吗,不太懂,可以讲下吗
回复 使用道具 举报

提供两种方法:一、定义一个常量,MAX=99999(视为在程序中不可能出现的最大值,java中的int不能设置为null),重复的就用它替换,输出时遇到==Max的就跳过,;二、每次检测到重复的,将后面所有的元素向前移动一位,覆盖掉,输出时只输出前面一段。这是编程中常用的方法。这是我第一反应的方法,可能比较繁琐。很多方法可以实现,看你题目的具体要求
回复 使用道具 举报
看我发给你的代码,纯数组操作,可以解决数组长度不能变的问题

Test002.zip

944 Bytes, 阅读权限: 100, 下载次数: 0

回复 使用道具 举报
import java.util.HashSet;
import java.util.Iterator;

public class Demo {

        public static void main(String[] args) {
                int[] arr = {6,2,9,6,1,2,6,7,8};
                HashSet al=new HashSet();
                for(int i=0;i<arr.length;i++)
                {
                        al.add(arr[i]);
                }
                System.out.println(al);
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马