检查数组得到一个新的不重复的数组
设计一个方法检查数组得到一个不重复的数组
建议:看不懂的去学习数据结构简单排序方法,简单方法懂了自然懂,他是用的简单排序思想;
数据结构简单排序一看就明白了,百度有动态模拟讲解[点击我找排序]还可以点我(https://www.cnblogs.com/hokky/p/8529042.html),八大排序详解
注意:要复制代码直接测试的话记得你需要创建个类,类名是我的Pratice,或者是你定义一个类。将我的Pratice改成你创建的类名,这样就可以直接运行了。
import java.util.Arrays;
/**
*检查数组得到元素不重复的新数组,
*
*/
public class Pratice { //无法运行时,将这里的Pratice改成你创建的类,或将你的类改成Pratice
public static void main(String[] args) {
method();//调用下面得方法,都是静态的直接方法名调用
}
/*
* 方法是找数组中有多少个重复的,重复的数是多少,整理后得到不重复的新数组;
*/
public static void method() {
int a[]= {1,5,8,3,4,4,8,9,6,2,1,4,5}; //写一个静态数组,是下面方法体要对其进行处理的
int i ,j; //定义外循环和内循环要用的
int n=0; //定义一个n变量来控制要提取的数组长度,重复n次,要遍历的原数组长度减n,
for( i=0;i<a.length-n;i++) { //定义外循环要遍历多少次,随着n的改变改变,重复一次遍历少一次
for( j=i+1;j<a.length-n;j++) { //内循环,让要查询是否重复的数组元素与其他剩余的比较
if(a[i]==a[j]) { //当前的元素与其剩余的进行比较
System.out.println(a[j]+"重复了"); //输出重复的
a[j]=a[a.length-1-n]; //重复了,就将最后的元素赋值过来
n++; //有重复n加1,遍历的长度减一
j--;} //重复了内循环减一,为了达到当前元素与最后刚赋值过来的重新比较
}
}
System.out.println("有"+n+"个重复了");
int b[]=Arrays.copyOf(a, a.length-n); //赋值新数组a长度为原长度减去重复的个数;
System.out.println(Arrays.toString(b));
}
}