Java可变参数方法详解及Collections工具类详解
  93byl95AX42O 2023年11月24日 28 0

Java可变参数

在使用Collections工具类时,会用到addAll方法,其中就要使用到可变参数,因此要求我们必须学会可变参数的定义和使用。JDK5开始引入可变参数,也即方法形参的个数是可以发生变化的,其定义格式为:

格式:属性类型...名字

int...nums

其底层原理就是在实际调用时将传入的可变参数装入一个数组当中。因此,访问此可变参数的实参与访问数组的方法一致,如下代码:

/**
 * 可变参数方法示例
 * @param nums 可变参数
 * @return 所有参数之和
 */
public static int getSum(int ... nums){
 int sum = 0;
 for (int num : nums) {
 sum += num;
 }
 return sum;
}

此外,定义可变参数方法还有如下两个要求:

  1. 一个方法最多只能有一个可变参数
  2. 如果一个方法有多个参数,那么可变参数要位于最后。

例如下面两个方法,第一个是符合要求的,而第二个方法定义则不符合要求:

/**
 * 此方法定义是符合要求的
 * @param num1
 * @param nums
 * @return
 */
public static int getSum(int num1, int ... nums){
 for (int num : nums) {
 num1 += num;
 }
 return num1;
}

/**
 * 错误定义,vararg必须为最后一个形参
 * @param nums
 * @param num
 * @return
 */
public static int getSum(int ... nums, int num){
 return num;
}


小结

  1. 可变参数本质上就是一个数组

2. 作用:在形参中接收多个数据

3. 格式:数据类型…参数名称

举例:int…a

注意事项:

●形参列表中可变参数只能有一个

●可变参数必须放在形参列表的最后面

Java工具类Collections

java.util.Collections:是集合工具类,注意它不是集合类而是集合的工具类,用于操作集合类。

Collections常用的API

方法名称

说明

public static <T>boolean addAll(Collection<T>c,T...elements)

批量添加元素。(只能添加类型为T的单列集合)

public static void shuffle(List<?>list)

打乱List集合元素的顺序

public static <T>void sort(List<T>list)

排序(按默认规则)

public static <T>void sort(List<T>list,Comparator<T>c)

根据指定的规则进行排序

public static <T>int binarysearch(List<T>list,  T key)

以二分查找法查找元素

public static <T>void copy(List<T>dest,List<T>src)

拷贝集合中的元素

public static <T>int fill(List<T>list,T obj)

使用指定的元素填充集合

public static <T>void max/min(Collection<T>coll)

根据默认的自然排序获取最大/小值

public static <T>void swap(List<?>list,int i,int j)

交换集合中指定位置的元素

示例用法:

//addAll  
批量向列表中添加元素
//1.创建集合对象
ArrayList<String>list =new ArrayList<>();

//2.批量添加元素
Collections.addAll(list,"abc","bcd","qwer","df","asdf","zxcv","1234","qwer");
//3.打印集合
System.out.println(list);
//shuffle打乱集合
Collections.shuffle(list);System.out.println(list);












【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月24日 0

暂无评论

推荐阅读
  rvP2pqm8fEoB   2023年12月24日   34   0   0 ListJavaListJava
93byl95AX42O