Java編程小技巧

積累變成過程中的小技巧:

技巧一:如果有三個類分別爲A、B、C。B作爲中間類,A類作爲最後的顯示。A需要用到C類中的變量和B中的一些參數,用一個方法實現數據從C到A的傳遞。首先在B類中寫一個方法,B中的方法的參數即是所需的C類中的變量,用C調用該方法把參數傳過去,之後再用B類調用A的方法來完成最終的顯示。

代碼例子如下:

package Test;

public class A {
	int A;
	public void AaddB(int A, int B){
		System.out.println("A=B+C="+(A+B));
	}
}

package Test;

public class B {
	int B = 20;
	public void showA(int C){
		A a = new A();
		a.AaddB(C, B);
	}

}

package Test;

public class C {
	static int C = 10;
	public static void main(String [] args){
		B b=  new B();
		b.showA(C);
	}

}

技巧二、修改HashSet裏面對象的屬性。

先以for循環找到需要修改的那個對象,把該屬對象從HashSet裏面remove,然後修改取到的對象的屬性,之後再插入到HashSet中即可。

例子

package Test;

import java.util.HashSet;

public class testHashSet {
	
	//兩個屬性
	private String name;
	private String number;
	
	//構造函數
	public  testHashSet(String name,String number){
		this.name = name;
		this.number = number;
	}
	
	//get和set方法
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getNumber() {
		return number;
	}
	public void setNumber(String number) {
		this.number = number;
	}
	

	//主函數
	public static void main(String [] args){
		HashSet<testHashSet> test = new HashSet<testHashSet>();
		//初始化
		testHashSet t1= new testHashSet("A","1");
		testHashSet t2= new testHashSet("B","2");
		testHashSet t3= new testHashSet("C","3");
		testHashSet t4= new testHashSet("A","1");
		test.add(t1);
		test.add(t2);
		test.add(t3);
		test.add(t4);
		//輸出一下,驗證沒有重複的,同時查看內容
		System.out.println("修改之前:");
		for(testHashSet s:test){
			System.out.println(s.name+"  "+s.number);
		}//end for
		
		//修改A對應的number爲"11"
		for(testHashSet s: test){
			if(s.name.equals("A")){
				test.remove(s);
				s.setNumber("11");
				test.add(s);
			}
		}//end for
		
		//修改之後
		System.out.println("修改之後:");
		for(testHashSet s:test){
			System.out.println(s.name+"  "+s.number);
		}//end for

		
	}
	
	
	
	
	
	
	
	//生成hash碼
	@Override
	public int hashCode(){
		
		int hash = 5;
		hash = 13 * hash+(this.name != null ? this.name.hashCode():0);
		hash=13*hash + (this.number != null? this.number.hashCode():0);
		return hash;
		
	}//end hashCode
	
	//比較
	@Override
	public boolean equals(Object obj){
		
		if(obj == null){
			return false;
		}
		if(getClass() != obj.getClass()){
			return false;
		}
		
		return true;
		
	}//end equals
	
	
}//end finally


發佈了35 篇原創文章 · 獲贊 8 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章