積累變成過程中的小技巧:
技巧一:如果有三個類分別爲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