题目要求是给一个数组内的数据进行排序,并且删除重复的数据。
public class Compositor {
public static void main(String[] args) {
//排序
Compositor compositor = new Compositor();
compositor.compositorMain();
}
public void compositorMain() {
//nums数组
int[] nums = { 1, 7, 7, 9, 10, 2, 2, 3, 4, 5, 10, 10, 11, 11 };
//实例化Test
Compositor test = new Compositor();
//调用方法compositor进行数组排序
test.compositor(nums);
//打印显示信息
test.PrintMessges();
//打印排序后的数组数据
test.print(nums);
//打印排序后的数组数据并删除重复数据
test.delReiteration(nums);
}
private int[] compositor(int[] nums) {
int len = nums.length;//数组长度
int temp;//变量temp
//排序
for (int i = 0; i < len; i++) {
for (int j = i; j < len; j++) {
if (nums[i] > nums[j]) {
temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
return nums;
}
private void delReiteration(int[] nums) {
System.out.println();//打印提示信息
System.out.print("删除重复数据:");
int len = nums.length;//变量len
for (int i = 0; i < len; i++) {//对数组数据进行不重复显示
if (i + 1 >= len) {//判断数组下标是否越界
if (nums[len - 1] != nums[len - 2]) {//最后两数据不相同的情况
System.out.print(nums[len - 1]);
} else {
System.out.print(nums[len - 2]);
}
} else {
if (nums[i] != nums[i + 1]){//判断两数据是否相同
System.out.print(nums[i] + ",");
}
}
}
}
protected void PrintMessges() {
System.out.println("这是一个冒泡排序法。");//打印显示信息
}
protected void print(int[] nums) {
System.out.print("数据:");
for (int i = 0; i < nums.length; i++) {//打印数组数据
System.out.print(nums[i] + ",");
}
}
}