一:可变参数:
1.引入:
这是我们定义了add()方法 ,将此方法进行重载,那么,我们要定义多个相同变量作为形参。
怎么办? 那么就引入了可变参数。。。
2.可变参数介绍:
可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了
方法的参数类型已经确定,个数不确定,我们可以使用可变参数
3.定义格式:
修饰符 返回值类型 方法名(数据类型… 变量名) { }
public static int add(int... a){
}
public static int add(String... b){
}
4.注意:
1.这里的变量其实是一个数组!!!
2.如果一个方法有多个参数,包含可变参数,可变参数要放在最后 !!
public static int add(int... a){ int sum = 0; for (int i = 0; i < a.length; i++) { sum += a[i]; } return sum; }
测试类:
int add1 = add(1, 2, 3);
System.out.println(add1);
int add = add(1, 2, 100, 99, 7892, 99, 34, 23, 53, 23, 534, 53, 2);
System.out.println(add);
在这里,可以看出,他是一个数组,以为可以遍历,
那么,什么时候定义数组的长度呢?
---当调用方法时 ,传递的实参。
如果有不同类型的形参(后面也要用可变参数):可变参数要放在最后 !!
public static int add(String str,int... b){
}
public static int add(int a,int c, String v,int... b){
}
二:不可变集合:
不可变集合是 jdk9 以上版本的新特征;
方法介绍:
在List,Set,Map接口中,都存在of方法,该方法可以创建一个不可变的集合;
1.这个集合不能添加,不能删除,不能修改。
2.但是可以结合集合的带参构造,实现集合的批量添加
1.使用:
public static void main(String[] args) {
// Set<String> set = new TreeSet<>()
// 创建了一个 不可变集合
List<String> list1 = List.of("张三", "李四", "王五");
// list1.remove("张三");//不支持 操作异常
System.out.println(list1);
Set<String> list2 = Set.of("张三", "李四", "王五", "张三1");
System.out.println(list2);//IllegalArgumentException 非法参数异常
// 创建Map集合 自动对应键值
Map<String, Integer> map = Map.of("张三", 12, "李四", 19, "王五", 20);
System.out.println(map);
}