/*** Generic Fixed bottom boundary *? Super E * * Generic fixed upper boundary *? extends e*/ Public Static voidMain (string[] args) {//demo1 ();Treeset<student> Ts1 =NewTreeset<> (Newcomparebyage ()); Ts1.add (NewStudent ("Zhang San", 33)); Ts1.add (NewStudent ("John Doe", 13)); Ts1.add (NewStudent ("Harry", 23)); Ts1.add (NewStudent ("Zhao Liu", 43)); TreeSet<BaseStudent> TS2 =NewTreeset<> (Newcomparebyage ()); Ts2.add (NewBasestudent ("Zhang San", 33)); Ts2.add (NewBasestudent ("John Doe", 13)); Ts2.add (NewBasestudent ("Harry", 23)); Ts2.add (NewBasestudent ("Zhao Liu", 43)); System.out.println (TS2); } Public Static voiddemo1 () {ArrayList<Student> List1 =NewArraylist<>(); List1.add (NewStudent ("Zhang San", 23)); List1.add (NewStudent ("John Doe", 24)); ArrayList<BaseStudent> List2 =NewArraylist<>(); List2.add (NewBasestudent ("Harry", 25)); List2.add (NewBasestudent ("Zhao Liu", 26)); List1.addall (LIST2); }}classComparebyageImplementsComparator<student>{@Override Public intCompare (Student s1, Student S2) {intnum = S1.getage ()-S2.getage (); returnnum = = 0?s1.getname (). CompareTo (S2.getname ()): num; } }
Java? Super E and? Extends E