java数组转集合,可变参数和静态导入

数组转集合

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 
		
	}
}

猜你喜欢

转载自blog.csdn.net/qq_41517071/article/details/82119843
今日推荐