积累变成过程中的小技巧:
技巧一:如果有三个类分别为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