1. 可变参数
- 可变参数介绍
- 可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了
- 方法的参数类型已经确定,个数不确定,我们可以使用可变参数
可变参数定义格式
修饰符 返回值类型 方法名(数据类型… 变量名) { }
- 可变参数的注意事项
- 这里的变量其实是一个数组
- 如果一个方法有多个参数,包含可变参数,可变参数要放在最后
可变参数的基本使用
public class ArgsDemo01 { public static void main(String[] args) { System.out.println(sum(10, 20)); System.out.println(sum(10, 20, 30)); System.out.println(sum(10, 20, 30, 40)); System.out.println(sum(10,20,30,40,50,60,70,80,90,100)); } // public static int sum(int b,int... a) { // return 0; // } public static int sum(int... a) { int sum = 0; for(int i : a) { sum += i; } return sum; } }
2. 创建不可变集合
- 方法介绍
在List、Set、Map接口中,都存在of方法,可以创建一个不可变的集合
这个集合不能添加,不能删除,不能修改
但是可以结合集合的带参构造,实现集合的批量添加
在Map接口中,还有一个ofEntries方法可以提高代码的阅读性
首先会把键值对封装成一个Entry对象,再把这个Entry对象添加到集合当中
- 示例代码
public class MyVariableParameter4 { public static void main(String[] args) { // static <E> List<E> of(E…elements) 创建一个具有指定元素的List集合对 象 //static <E> Set<E> of(E…elements) 创建一个具有指定元素的Set集合对象 //static <K , V> Map<K,V> of(E…elements) 创建一个具有指定元素的Map集 合对象 //method1(); //method2(); //method3(); //method4(); } private static void method4() { Map<String, String> map = Map.ofEntries( Map.entry("zhangsan", "江苏"), Map.entry("lisi", "北京")); System.out.println(map); } private static void method3() { Map<String, String> map = Map.of("zhangsan", "江苏", "lisi", "北京", "wangwu", "天津"); System.out.println(map); } private static void method2() { //传递的参数当中,不能存在重复的元素。 Set<String> set = Set.of("a", "b", "c", "d","a"); System.out.println(set); } private static void method1() { List<String> list = List.of("a", "b", "c", "d"); System.out.println(list); //list.add("Q"); //list.remove("a"); //list.set(0,"A"); //System.out.println(list); // ArrayList<String> list2 = new ArrayList<>(); // list2.add("aaa"); // list2.add("aaa"); // list2.add("aaa"); // list2.add("aaa"); //集合的批量添加。 //首先是通过调用List.of方法来创建一个不可变的集合,of方法的形参就是一个可变参 数。 //再创建一个ArrayList集合,并把这个不可变的集合中所有的数据,都添加到ArrayList 中。 ArrayList<String> list3 = new ArrayList<>(List.of("a", "b", "c", "d")); System.out.println(list3); } }