可变参数
可变参数介绍
可变参数:
可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了;
格式 : 修饰符 返回值类型 方法名(数据类型...变量名){ }
范例 : public static int getSum(int...a){ }
可变参数注意事项:
这里的变量其实是一个数组
就如果一个方法有多个参数,包含可变参数,可变参数要放在最后
示例
public class VariableP01 {
public static void main(String[] args) {
System.out.println(getSum(10,20));
System.out.println(getSum(10,20,30));
// System.out.println(Sum(10,10,30,40));
}
// public static int Sum(int b,int...a){
// return 0;
// }
public static int getSum(int...a){
// System.out.println(a);// [I@1b6d3586 [I@4554617c ,实际是个数组
// return 0;// 0 0
int sum = 0;
for(int i:a){
sum+=i;
}
return sum;
}
// public static int getSum(int a,int b){
// return a+b;
// }
//
// public static int getSum(int a,int b,int c){
// return a+b+c;
// }
}
可变参数的使用
可变参数的使用
JDK9有下列方法
Arrays工具类中有一个静态方法:
public static <T> List<T> asList(T...a):返回由指定数组支持的固定大小的列表
返回的集合不能做增删操作, 可以做修改操作
List接口有一个静态方法:
public static <E> List<E> of(E...Element):返回包含任意数量元素的不可变列表
返回的集合不能做增删改操作
Set接口有一个静态方法:
public static <E> Set<E> of(E...Element):返回一个包含任意数量元素的不可变集合
不能给出重复元素
返回的集合不能做增删操作, 没有修改的方法
示例
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
public class VariableP02 {
public static void main(String[] args) {
//public static <T> List<T> asList(T...a)
// List<String> list = Arrays.asList("hello","world","java");
// list.add("javaee");//UnsupportedOperationException抛出以表示不支持请求的操作。
// list.remove("hello");//UnsupportedOperationException
// list.set(1,"javaee");// [hello, javaee, java]
// System.out.println(list);
// public static <E> List<E> of(E...Element)
// List<String> list = List.of("hello", "world", "java");
// list.add("javaee");//UnsupportedOperationException
// list.remove("hello");//UnsupportedOperationException
// list.set(1,"javaee");////UnsupportedOperationException
// System.out.println(list);
//public static <E> Set<E> of(E...Element)
// Set<String> set = Set.of("hello", "world", "java","hello");//IllegalArgumentException
// IllegalArgumentException抛出表示一种方法已经通过了非法或不正确的参数。
// Set<String> set = Set.of("hello", "world", "java");
// set.add("javaee");//UnsupportedOperationException
// set.remove("hello");//UnsupportedOperationException
// System.out.println(set);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了