数组重复值
老师,若要求一对数组里的出现的重复的数,并按照从大到小的顺序把它们重新打印出来
比如 「2,3,4,5,4,2,,6,4」
要求输出 「2,2,4,4,4,5,6,」
怎么做呀?
正在回答
同学你好!
Test2 t=new Test2()是创建一个Test2这个类的对象,在后面的面向对象部分会讲到,建议同学继续往后学习
冒泡排序算法的原理就是:从数组的第一个数开始,依次和后面的数相比,若前者小则交换顺序,直到所有小的数冒到最后,最后按照从大到小排序。在课程的4-1节有讲解到这个排序,建议同学可以看一下视频,视频的讲解会比文字更加生动,更加有助于你的理解,具体链接:
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
同学你好,这里同学的编写思路有些偏差,
按照老师之前提供给同学的思路应该是,先将这个数组进行排序,然后从头到尾遍历排序后的数组,然后比较前一个数字与后一个数字是否相等。如果相等就返回他。如果不相等就向后移动,直到数组遍历结束。
这里关于排序的方法,可以参考本章中4-1小节的冒泡排序
在进行遍历数组时,应该从数组下标0开始,直到数组长度-1的位置结束循环,因为如果到数组的最后结束遍历,则会导致最后一个数组元素与后一个元素,无法比较,会造成数组越界的异常。然后当前元素与后一个元素比较是否相等并且当前元素与后两个元素不相等时,输出这个重复的元素。
例如代码如下:
public class Test2 { //冒泡排序进行排序 public int [] sort1(int [] a) { int temp; for(int i=0;i<a.length-1;i++){ //内重循环控制每趟排序 for(int j=0;j<a.length-i-1;j++){ if(a[j]>a[j+1]){ temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } return a; } public static void main(String[] args) { Test2 t=new Test2(); int[ ] arr = { 2,3,1,3,2,4,6,7,9,2,19 }; int[ ] arrSort = t.sort1(arr);//调用排序方法,返回排序后的数组。 for (int i = 0; i < arrSort.length-1; i++) { //对排序后的数组进行遍历 if (arrSort[i] == arrSort[i + 1]&&arrSort[i]!=arrSort[i + 2]) { System.out.println(arrSort[i]); } } } }
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星