Java学习笔记06数组的简单使用

利用数组实现冒泡排序效果。

//定义一个长度为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键快速生成代码。

猜你喜欢

转载自blog.csdn.net/xxxmou/article/details/129033937