可变参数

可变参数:是JDK1.5之后出现的新特性

使用前提:当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数

使用格式:定义方法时使用

  ~修饰符 返回值类型 方法名(数据类型…变量名){}

可变参数的原理:

  ~可变参数底层就是一个数组,根据传递参数个数不同,会创建不同长度的数组,来存储这些参数传递的参数个数,可以是0个(不传递),1,2…多个

public static void main(String[] args) {
// int i = add();
// int i = add(10);
int i = add(10,20);
// int i = add(10,20,30,40,50,60,70,80,90,100);
System.out.println(i);
method("abc",5.5,10,1,2,3,4);
}
/*
可变参数的注意事项
1. 一个方法的参数列表,只能有一个可变参数
2. 如果方法的参数有多个,那么可变参数必须写在参数列表的末尾
*/
/*public static void method(int...a,String...b) { }*/
/*public static void method(String b,double c,int d,int...a) { }*/
//可变参数的特殊(终极)写法
public static void method(Object...obj) { }
/*定义计算(0-n)整数和的方法
已知:计算整数的和,数据类型已经确定int
但是参数的个数还不确定,不知道要计算几个整数的和,就可以使用可变参数
add():就会创建一个长度为0的数组,new int[0]
add(10):就会创建一个长度为1的数组,存储传递过来的参数 new int[] {10};
add(10,20):就会创建一个长度为2的数组,存储传递过来的参数 new int[] {10,20};
add(10,20,30,40,50,60,70,80,90,100):就会创建一个长度为10的数组,存储传递过来的参数 new int[] {10,20,30,40,50,60,70,80,90,100};
*/
public static int add(int...arr) {
// System.out.println(arr);//[I@b4c966a 底层是一个数组
// System.out.println(arr.length);//0,1,2,10
int sum = 0;
//遍历数组,获取数组中的每一个元素
for (int i:arr) {
//累加求和
sum +=i;
}
//把求和结果返回
return sum;
}
//定义一个方法,计算三个int类型整数的和
/*public static int add(int a,int b,int c) {
return a+b+c;
}*/
//定义一个方法,计算两个int类型整数的和
/*public static int add(int a,int b) {
return a+b;
}*/

Collections

常用方法

~java.utils.Collections是集合工具类,用来对集合进行操作。部分方法如下:

~public static <T> boolean addAll(Collection<T> c, T... elements):往集合中添加一些元素

~public static void shuffle(List<?> list) 打乱顺序:打乱集合顺序

~public static <T> void sort(List<T> list):将集合中元素按照默认规则排序

~public static <T> void sort(List<T> list,Comparator<? super T> ):将集合中元素按照指定规则排序

/*
- java.utils.Collections是集合工具类,用来对集合进行操作。部分方法如下:
- public static <T> boolean addAll(Collection<T> c, T... elements):往集合中添加一些元素。
- public static void shuffle(List<?> list) 打乱顺序:打乱集合顺序。
*/
public class Demo01Collections {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
//往集合中添加多个元素
/*list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");*/ //public static <T> boolean addAll(Collection<T> c, T... elements):往集合中添加一些元素。
Collections.addAll(list,"a","b","c","d","e"); System.out.println(list);//[a, b, c, d, e] //public static void shuffle(List<?> list) 打乱顺序:打乱集合顺序。
Collections.shuffle(list);
System.out.println(list);//[b, d, c, a, e], [b, d, c, a, e]
}
}

最新文章

  1. shell,bash,git bash,xshell,ssh
  2. Fort.js – 时尚、现代的表单填写进度提示效果
  3. Quartz集群配置
  4. php中global与$GLOBALS的用法及区别-转载
  5. 简单播放系统提示音 android
  6. HackerRank &quot;Training the army&quot; - Max Flow
  7. 去掉Visual Studio 编辑器里中文注释的红色波浪线 转载
  8. NetAnalyzer笔记 之 六 用C#打造自己的网络连接进程查看器(为进程抓包做准备)
  9. Esper学习之六:EPL语法(二)
  10. JS中String添加trim()方法
  11. .NET(C#):觉察XML反序列化中的未知节点
  12. 创建android画笔程序的样例(有镜面效果)
  13. USACO Section 1.2 Palindromic Squares 解题报告
  14. PRINCE2的国际形势?光环国际项目管理培训
  15. Linux增加磁盘操作
  16. 计蒜客NOIP模拟赛5 D1T1 机智的 AmyZhi
  17. Python Generator 运行细节验证
  18. C语言 &gt; 指向指针的指针
  19. Carthage下没有Build文件夹
  20. zw版【转发&#183;台湾nvp系列Delphi例程】HALCON SetComprise1

热门文章

  1. Bugku CTF练习题---加密---ok
  2. ONNXRuntime学习笔记(四)
  3. CSS展开收起
  4. 探索ABP基础架构
  5. 一、深入学习c++先要练好的内功
  6. 从NSSRound#1学到了什么
  7. Java 线程常用操作
  8. async用法
  9. Proxmox 7.2 部署 DoraCloud桌面云,支持vGPU
  10. e2fsck-磁盘分区修复