简单理解使用Collection集合工具类
前提:理解一下可变参数,在代码末尾中有:
可变参数
用在形参中可以接受多个数据
格式:数据类型...参数名称
传输参数非常灵活,方便,可以不传输参数,可以传输1个或者多个,可以传输一个数组
根据可变参数的语法前面可以加参数,但是后面不可以加,可变参数只能一个
可变参数在方法内部本质上就是一个数组
public class ArgsDemo {
/*
Collections工具类
*/
public static void main(String[] args) {
int sum1 = getSum(1, 2, 3, 4);
int sum2 = getSum(1, 2, 3, 4,5);
System.out.println(sum1);
System.out.println(sum2);
int[] arr = {1,2,3,4};
int sum3 = getSum(arr);
System.out.println(sum3);
System.out.println("------------------");
//下面演示工具类的方法 addAll 批量添加
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list,"a","b","c","d");
System.out.println(list);
//二分查找 binarySearch
int d = Collections.binarySearch(list, "d");
System.out.println(d);
//洗牌 shuffle
Collections.shuffle(list);
System.out.println(list);
//最大值最小值 max min 如果比较的是对象,比如学生类,需要重写CompareTo方法
ArrayList<Integer> list1 = new ArrayList<>();
Collections.addAll(list1,1,3,5,4,2,6,7,8,9);
System.out.println(Collections.max(list1));
System.out.println(Collections.min(list1));
//交换位置
Collections.swap(list1,0,8);
System.out.println(list1);
//sort:对集合进行排序,默认升序(自然排序)
Collections.sort(list1, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2-o1;
}
});
System.out.println(list1);
}
/*
可变参数
用在形参中可以接受多个数据
格式:数据类型...参数名称
传输参数非常灵活,方便,可以不传输参数,可以传输1个或者多个,可以传输一个数组
根据可变参数的语法前面可以加参数,但是后面不可以加,可变参数只能一个
可变参数在方法内部本质上就是一个数组
*/
public static int getSum(int... nums){
int sum = 0;
for (int num : nums) {
sum+=num;
}
return sum;
}
}