1 package day6.lesson4;
2
3 /*
4 4 可变参数
5
6 4.1 可变参数介绍
7
8 可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了
9 格式:修饰符 返回值类型 方法名(数据类型… 变量名) { }
10 注意:这里的变量其实是一个数组;如果一个方法有多个参数,包含可变参数,可变参数要放在最后
11
12 */
13 public class ArgsDemo1 {
14 public static void main(String[] args) {
15 System.out.println(sum(10, 20));
16 System.out.println(sum(10, 20, 30));
17 System.out.println(sum(10, 20, 30, 40));
18
19 System.out.println(sum(10, 20, 30, 40, 50));
20 System.out.println(sum(10, 20, 30, 40, 50, 60));
21 System.out.println(sum(10, 20, 30, 40, 50, 60, 70));
22 }
23
24 /*public static int sum(int a, int b){
25 return a+b;
26 }
27
28 public static int sum(int a, int b, int c){
29 return a+b+c;
30 }
31
32 public static int sum(int a, int b, int c, int d){
33 return a+b+c+d;
34 }*/
35
36 //可变参数
37 public static int sum(int... a){
38 // System.out.println(a); //输出地址-->a实质是数组,原参数列表被自动封装到数组了
39 int sum = 0;
40 for (int i: a){
41 sum+=i;
42 }
43 return sum;
44 }
45
46 /*public static int sum(int b, int... a){
47 return 0;
48 }*/
49
50 }
1 package day6.lesson4;
2
3 import java.util.Arrays;
4 import java.util.List;
5 import java.util.Set;
6
7 /*
8 4.2 可变参数使用
9
10 Arrays工具类中有一个静态方法:
11 public static List asList(T... a):返回由指定数组支持的固定大小的列表
12 返回的集合不能做增删操作,可以做修改操作
13 List接口中有一个静态方法:
14 public static List of(E... elements):返回包含任意数量元素的不可变列表
15 返回的集合不能做增删改操作
16 Set接口中有一个静态方法:
17 public static Set of(E... elements) :返回一个包含任意数量元素的不可变集合
18 在给元素的时候,不能给重复的元素
19 返回的集合不能做增删操作,没有修改的方法
20 */
21 public class ArgsDemo2 {
22 public static void main(String[] args) {
23
24 List<String> list = Arrays.asList("hello", "world", "java");
25 System.out.println(list); //[hello, world, java]
26
27 // list.add("javaee"); //java.lang.UnsupportedOperationException 运行异常
28 // list.remove("world"); //java.lang.UnsupportedOperationException
29 list.set(1, "javaee"); //ok
30 System.out.println(list); //[hello, javaee, java]
31
32 /*// List<String> list1 = List.of("hello", "world", "java"); //of报红,JDK8不支持,JDK9开始支持
33 list1.add("javaee"); //java.lang.UnsupportedOperationException
34 list1.remove("world"); //java.lang.UnsupportedOperationException
35 list1.set(1, "javaee"); //java.lang.UnsupportedOperationException
36 System.out.println(list1);*/
37
38 /*Set<String> set = Set.of("hello", "world", "java"); //of报红,JDK8不支持,JDK9开始支持
39 // Set<String> set = Set.of("hello", "world", "java", "java"); //JDK9报运行异常,因为set不允许有重复元素
40 set.add("javaee"); //java.lang.UnsupportedOperationException
41 set.remove("world"); //java.lang.UnsupportedOperationException
42 //注意set集合没有set()
43 System.out.println(set);*/
44
45 }
46 }