利用数组实现冒泡排序效果。
//定义一个长度为10的数组
int[] a1 = new int[9];
Random rand = new Random();
//给数组元素赋随机值
for (int i = 0; i < a1.length; i++) {
a1[i] = rand.nextInt(1, 101);
}
//冒泡排序
for (int i = 0; i < a1.length; i++) {
for (int j = 0; j < a1.length - 1 - i; j++) {
if (a1[j] > a1[j + 1]) {
int t = a1[j];
a1[j] = a1[j + 1];
a1[j + 1] = t;
}
}
}
System.out.println(Arrays.toString(a1));
自己定义一个StudtenA1,使用Arrays.sort()方法对StudtenA1数组中的元素进行排列。
StudtenA1[] stus = new StudtenA1[]{
new StudtenA1(9, "王九", 45, "北京"),
new StudtenA1(3, "张三", 23, "上海"),
new StudtenA1(6, "仁六", 67, "郑州"),
new StudtenA1(2, "李二", 98, "商丘"),
new StudtenA1(7, "钱七", 12, "石家庄"),
new StudtenA1(12, "钱七", 13, "常山")
};
System.out.println(Arrays.toString(stus));
//根据对象的年龄降序排列
Arrays.sort(stus, (a, b) -> b.getAge() - a.getAge());
System.out.println(Arrays.toString(stus));
//根据对象的ID降序排列
Arrays.sort(stus, (a, b) -> b.getId() - a.getId());
//System.out.println(Arrays.toString(stus));
for (int i = 0; i < stus.length; i++) {
System.out.println(stus[i]);
}
//默认的排序
Arrays.sort(stus);
for (int i = 0; i < stus.length; i++) {
System.out.println(stus[i]);
}
System.out.println("-------------------------------");
//按地址排
Arrays.sort(stus, (a, b) -> a.getName().compareTo(b.getName()));
for (int i = 0; i < stus.length; i++) {
System.out.println(stus[i]);
}
System.out.println("-------------------------------");
Arrays.sort(stus, (a, b) -> b.getName().compareTo(a.getName()));
for (int i = 0; i < stus.length; i++) {
System.out.println(stus[i]);
}
StudtenA1类中的代码如下。
public class StudtenA1 implements Comparable<StudtenA1> {
private int id;
private String name;
private int age;
public StudtenA1() {
}
@Override
public String toString() {
return "StudtenA1{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", address='" + address + '\'' +
'}';
}
public StudtenA1(int id, String name, int age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
private String address;
//设置默认的排序方式
@Override
public int compareTo(StudtenA1 o) {
return id - o.id;
}
}
其中新建的StudtenA1可以使用高级工具的Alt+Insert键快速生成代码。