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)