java集合类案例综述(二)

2014-11-23 23:37:59 · 作者: · 浏览: 1
----------------------"); //------------------------------------------- /** * Set排序 * Persion3实现了排序的接口Comparable * p ***> is:0Persion3@07,hasCode is:0 * p ***> is:1Persion3@01,hasCode is:0 * p ***> is:2Persion3@03,hasCode is:0 * p ***> is:4Persion3@06,hasCode is:0 * p ***> is:5Persion3@04,hasCode is:0 * p ***> is:8Persion3@02,hasCode is:0 * p ***> is:9Persion3@05,hasCode is:0 * 按照Age进行排序 */ Set sortSet = new TreeSet (); Persion3 pf1 = new Persion3(1); Persion3 pf2 = new Persion3(8); Persion3 pf3 = new Persion3(2); Persion3 pf4 = new Persion3(5); Persion3 pf5 = new Persion3(9); Persion3 pf6 = new Persion3(4); Persion3 pf7 = new Persion3(0); sortSet.add(pf1); sortSet.add(pf2); sortSet.add(pf3); sortSet.add(pf4); sortSet.add(pf5); sortSet.add(pf6); sortSet.add(pf7); for(Persion3 p:sortSet){ System.out.println("p ***> is:"+p+",hasCode is:"+p.hashCode()); } System.out.println("---------------------------------------"); /** * Set排序,按照【排序器】进行排序Comparetor * 打印: * p ***> is:1Persion3@01,hasCode is:0 * p ***> is:8Persion3@02,hasCode is:0 * p ***> is:2Persion3@03,hasCode is:0 * p ***> is:5Persion3@04,hasCode is:0 * p ***> is:9Persion3@05,hasCode is:0 * p ***> is:4Persion3@06,hasCode is:0 * p ***> is:0Persion3@07,hasCode is:0 * 按照index进行排序 */ TreeSet sortSetByComparator = new TreeSet (new ComparetorByIndex()); sortSetByComparator.add(pf1); sortSetByComparator.add(pf2); sortSetByComparator.add(pf3); sortSetByComparator.add(pf4); sortSetByComparator.add(pf5); sortSetByComparator.add(pf6); sortSetByComparator.add(pf7); for(Persion3 p:sortSetByComparator){ System.out.println("p ***> is:"+p+",hasCode is:"+p.hashCode()); } System.out.println("---------------------------------------"); } } class Persion1{ public int mAge; private static AtomicInteger atIndex = new AtomicInteger();//原子类型 public int index; public Persion1(int age){ mAge = age; index = atIndex.addAndGet(1); } @Override public int hashCode() { return 0; } @Override public String toString() { return mAge+""+super.toString()+index; } @Override public boolean equals(Object arg0) { if(arg0 instanceof Persion1){ Persion1 p = (Persion1)arg0; return mAge == p.mAge; } return super.equals(arg0); } } class Persion2{ public int mAge; private static AtomicInteger atIndex = new AtomicInteger();//原子类型 public int index; public Persion2(int age){ mAge = age; index = atIndex.addAndGet(1); } @Override public int hashCode() { return 0; } @Override public String toString() { return mAge+""+super.toString()+index; } @Override public boolean equals(Object arg0) { if(arg0 instanceof Persion2){ Persion2 p = (Persion2)arg0; return mAge != p.mAge; } return super.equals(arg0); } } class Persion3 implements Comparable
{ public int mAge; private static AtomicInteger atIndex = new AtomicInteger();//原子类型 public int index; public Persion3(int age){ mAge = age; index = atIndex.addAndGet(1); } @Override public int hashCode() { return 0; } @Override public String toString() { return mAge+""+super.toString()+index; } @Override public boolean equals(Object arg0) { if(arg0 instanceof Persion3){ Persion3 p = (Persion3)arg0; return mAge != p.mAge; } return super.equals(arg0); } @Override public int compareTo(Persion3 p) { return mAge - p.mAge ; } } class ComparetorByAge implements Comparator { @Override public int compare(Persion3 p0, Persion3 p1) { return p0.mAge - p1.mAge; } } class ComparetorByIndex implements Co