數組、集合和可變長參數


import java.util.Arrays;
import java.util.List;

public class Test1 {
	public List<Test> tests;				//定義變量名為tests,類型為Test的集合;
	
	//構造器1:
	public Test1(List<Test> tests) {		//參數為集合
		this.tests=tests;					//為成員變量tests賦值
		System.out.println("---構造器1:集合的大小為:"+tests.size());
	}
	
	//構造器2:
	public Test1(Test... tests) {			//參數為可變參數,所有參數的類型為Test類,可變參數並非一個數組,而是N個元素
		this(Arrays.asList(tests));			//調用構造器1,將可變長參數數組轉換成集合
		System.out.println("---構造器2:轉換后的集合第一個元素的A屬性是:"+Arrays.asList(tests).get(0).getA());
	}
	
	public List<Test> getTests() {
		return tests;
	}

	public void setTests(List<Test> tests) {
		this.tests = tests;
	}
	
	static class Test{
		private Integer a;
		private Integer b;
		public Integer getA() {
			return a;
		}
		public void setA(Integer a) {
			this.a = a;
		}
		public Integer getB() {
			return b;
		}
		public void setB(Integer b) {
			this.b = b;
		}
		public Test(Integer a, Integer b) {
			super();
			this.a = a;
			this.b = b;
		}	
	}
	
	public static void main(String[] args) {
		Test test=new Test(1,2);				//Test類
		Test[] a= {test,test,test};				//類型為Test的數組
		List<Test> tests = Arrays.asList(a) ;	//將數組轉換成集合
		
		Test1 test1=new Test1(tests);			//傳入參數為集合,只觸動構造器1
		System.out.println("以上是構造test1時所發生的事情,test1實例的方法返回一個Test集合:"+test1.getTests()+"\n");
		
		Test1 test2=new Test1(test,test,test);	//傳入參數為不定個數的Test類,觸動構造器2
		System.out.println("以上是構造test2時所發生的事情,test2實例:"+test2.toString());
		
	}
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM