package hashSet;
import java.util.*;
public class CollectionsTest
{
public static void main(String[] args)
{
ArrayList hs=new ArrayList();
hs.add(new Student(3,"main",23));
hs.add(new Student(4,"lili",21));
hs.add(new Student(2,"lucy",25));
hs.add(new Student(1,"mali",23));
hs.add(new Student(5,"xuanzi",22));
Object o=Collections.max(hs);
System.out.println("最大值:"+o);
Collections.reverse(hs);
System.out.println("反序:"+hs);
System.out.println("自然排序:(Comparable)");
System.out.println(hs);
Collections.sort(hs,new MyComparator());
System.out.println("比较器排序:(Comparator)");
System.out.println(hs);
Comparator reverse=Collections.reverseOrder(new MyComparator());
System.out.println("反转比较器排序(Comparator):");
System.out.println(hs);
}
}
package hashSet;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import a1.Book;
public class HashSetTest
{
public static void main(String[] args)
{
HashSet hs=new HashSet();
ArrayList l=new ArrayList();
hs.add(1);
hs.add(1);
hs.add(new Book(1,"apple"));
hs.add(new Book(1,"apple"));
l.add(new Book(1,"apple"));
l.add(new Book(1,"apple"));
Iterator it=hs.iterator(); //声明迭代器
while(it.hasNext())
{
Object o=it.next();
if(o instanceof Book)
{
((Book) o).setId(100);//修改id的值
((Book) o).setName("Java");//修改id的值
}
}
System.out.println(hs);
it.remove();
// it.remove();
System.out.println(hs);
System.out.println("调用通用迭代器:");
foreach(hs);
foreach(l);
}
//通用迭代器
public static void foreach(Collection s)
{
Iterator it=s.iterator();
while(it.hasNext())
{
Object o=it.next();
}
System.out.println(s);
}
}
package hashSet;
import java.lang.reflect.Method;
import java.util.Comparator;
public class MyComparator implements Comparator
{
@Override
public int compare(Object o1, Object o2)
{
//获取类的自描述对象
Class c1=o1.getClass();
Class c2=o2.getClass();
//Field f1,f2;
Method m1,m2;
Integer id1=null,id2=null;
try
{
//获取字段的自描述对象
//f1=c1.getDeclaredField("id");
//f2=c2.getDeclaredField("id");
//id1=f1.getInt(o1);
//id2=f2.getInt(o2);
//返回get方法的描述对象
m1=c1.getDeclaredMethod("getId");
m2=c2.getDeclaredMethod("getId");
id1=(Integer) m1.invoke(o1);
id2=(Integer) m2.invoke(o2);
//从对象中得到字段值
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return id1.compareTo(id2);
}
}
package hashSet;
public class Student implements Comparable
{
private int id;
private String name;
private int age;
public Student(int id,String name, int age)
{
super();
this.id=id;
this.name = name;
this.age = age;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
@Override
public String toString()
{
// TODO Auto-generated method stub
return "编号:"+id+"姓名:"+name+"年龄:"+age;
}
@Override
public int compareTo(Object o)
{
// TODO Auto-generated method stub
Student s=(Student) o;
return ((Integer)this.age).compareTo(s.age);
}
}
package hashSet;
import java.util.HashSet;
import java.util.TreeSet;
import a1.Book;
public class TreeSetTest
{
public static void main(String [] args)
{
HashSet hs=new HashSet();
//hs.add(1);
Book b1=new Book(1,"apple",100);
Book b2=new Book(3,"pear",100);
Book b3=new Book(2,"pear",200);
Book b4=new Book(4,"pear",300);
Book b5=new Book(5,"pear",50);
hs.add(b1);
hs.add(b2);
hs.add(b3);
hs.add(b4);
hs.add(b5);
TreeSet ts=new TreeSet(hs);
System.out.println(ts);
System.out.println("hs:"+hs);
}
}