数组转集合
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CollectionsDemo02 {
public static void main(String[] args) {
/* List<String> list = new ArrayList<String>();
list.add("abc");
list.add("nba");
list.add("cba");
//转换成数组:
list.toArray(new String[list.size()]);
list.toArray(new String[1]);//数组不适用,会自动创建一个:
list.toArray(new String[10]);// 其他的位置使用默认值补齐。
*/
//数组转换成集合:
int [] arr = {1,3,4,5};
Integer [] arr1={1,3,4,5,6};
String [] strs ={"wangda","wanger","wangsan","wangsi"};
//转换成集合:
List<int[] > list1 = Arrays.asList(arr);
List<Integer> asList = Arrays.asList(arr1);
System.out.println(asList.size());// 5
System.out.println(list1.size());// 1
List<String> list2 = Arrays.asList(strs);
System.out.println(list2.size());// 4
//总结: ,组转换成List集合的时候, 如果数组存储的使用基本数据类型,转换成集合, 数组对象会作为集合当中元素存在。
// 当数组的元素是引用类型的时候, 转换成集合,数组的元素会作为集合元素存在。
/*
* 通过数组转换成list集合 数组的长度固定,不允许对集合的长度进行相关的修改:
* 添加, 删除操作不能使用: 否则:UnsupportedOperationException
boolean add = list2.add("sss");//
System.out.println(add);*/
}
}
可变参数
package com.yidongxueyuan.collections;
public class VeriableParams {
public static void main(String[] args) {
int arr[] = {3,6,2,1,4};
//int sum = getSum(arr);
//System.out.println(sum);
// int arr1[] = {3,6,2,1,4};
//使用可变参数:
getSum(2,1,34,5);
int sum = getSum(1,2,3,4,5,6,7,8,9);
System.out.println(sum);
}
/* public static int getSum(String str, int ...arr){// 可变参数 只能是参数列表当中的最后一个。
System.out.println(arr.length);
//数组:
int sum=0;
for(int a=0; a<arr.length ;a++){
sum+= arr[a];
}
return sum;
}*/
// 在JDK1.5, 提供了可变参数:
public static int getSum(int ...arr){
System.out.println(arr.length);
//数组:
int sum=0;
for(int a=0; a<arr.length ;a++){
sum+= arr[a];
}
return sum;
}
//数组: 升级1: 使用数组:将int类型的值都封装到数组当中,循环遍历数组,求和。
// 优点: 简化了方法的个数:
// 弊端: 每次求的int类型的值都需要封装在数组当中。
/* public static int getSum(int arr[]){
int sum=0;
for(int a=0; a<arr.length ;a++){
sum+= arr[a];
}
return sum;
}*/
/* //求两个int类型的值:
public static int getSum(int num1, int num2){
return num1+num2;
}
//三个数的和:
public static int getSum(int num1, int num2, int num3){
return num1+num2+num3;
}*/
}
静态导入
//使用静态导入:
import java.util.*; //导入util包下的所有的类:
import static java.lang.Math.*;//导入Math类当中的所有的方法:
import static java.util.Arrays.*;
import static java.lang.System.*;
public class StaticImport extends Object {
public static void main(String[] args) {
/*
Math.abs(-9);
Math.max(1.0, 3.0);
Math.random();*/
int abs = abs(-9);
System.out.println(abs);
max(3,1);
int arr[] = new int[]{1,2,4,4,5};
Arrays.toString(arr); //不能使用静态的导入, 因为Objcet类当中也提供了toString方法, JVM不能识别是Arrays还是Object。
sort(arr);// 在其他的类当中没有sort 方法 就可以使用Arrays类当中的sort方法:
//打印:
out.println("asss");
//什么时候? 当这个类当中大量使用了某个类的方法时,可以使用静态导入。
// Math
}
}