【java日记4】

LinkedHashSet和HashSet的区别是,LinkedHashSet多了一条链表来保存元素顺序,因此相对于HashSet来说,它的元素是有序的,但同样不允许重复和索引

当方法的参数不确定个数时,可以使用可变参数来实现

public class Demo {
    public static void main(String[] args) {
        int sum1 = sum(1, 2, 3, 4, 5);  // 15
        int sum2 = sum(1, 2, 3);  //  6
        System.out.println(sum1);
        System.out.println(sum2);

    }

    public static int sum(int... arr) {  // arr相当于参数数组
        int sum = 0;
        for (int n : arr) {
            sum += n;
        }
        return sum;
    }
}

注意事项,可变参数只能唯一且只能放到参数列表的最后面

Collections工具类的常用方法:addAll、shuffle、sort

sort的自定义排序使用

public class Person {
    public int age;
    public String name;

    public Person(int age, String name) {
        this.age = age;
        this.name = name;
    }

    @Override
    public String toString() {
        return this.age + " " + this.name;
    }
}

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator大专栏  【java日记4】"o">;

public class Demo {
    public static void main(String[] args) {
        ArrayList<Person> list = new ArrayList<>();
        list.add(new Person(15, "张三"));
        list.add(new Person(18, "李四"));
        list.add(new Person(16, "王五"));
        list.add(new Person(16, "赵六"));

        System.out.println(list.toString());

        // 按年龄排序,若年龄相同,按姓排序
        Collections.sort(list, new Comparator<Person>() {
            @Override
            public int compare(Person o1, Person o2) {
                int result = o1.age - o2.age;  // 前 - 后, 升序
                if (result == 0) {
                    result = o1.name.charAt(0) - o2.name.charAt(0);
                }
                return result;
            }
        });

        System.out.println(list.toString());
    }
}

检查传递的参数为空的静态方法

Objects.requireNonNull(args, "传递的参数为空");

throw和throws的区别

throw为抛出异常,throws为声明异常,throw抛出的异常必须被声明或者捕获(thy catch)

父类声明异常,子类可以声明相同的异常或者父类异常的子类,或者不声明异常。父类不声明异常,那么子类也不能声明异常,只能抛出异常。

猜你喜欢

转载自www.cnblogs.com/lijianming180/p/12410112.html