集合之二

来源:互联网 发布:gta4不卡优化流畅补丁 编辑:程序博客网 时间:2024/05/16 11:47

排序:Collections.sort()
(1)自然排寻(natural ordering );
(2)实现比较器(Comparator)接口。
取最大和最小的元素:Collections.max()、Collections.min()。
在已排序的List中搜索指定的元素:Collectons.binarySearch()。

 

import java.util.*;
public class  ArrayListTest1
{
          
public static void printElements(Collection c)
          
{
                    Iterator it
=c.iterator();
                                
while(it.hasNext())
                                
{
                                       System.out.println(it.next());
                                }

          }

                
public static void main(String[] args)
                
{
                                ArrayList al
=new ArrayList();
                                al.add(
new Student(2,"wanhhu"));
                                al.add(
new Student(3,"huaihua"));
                                al.add(
new Student(4,"liming"));
                                al.add(
new Student(5,"zhanghu"));
                                printElements(al);
                                Collections.sort(al,
new Student.StudentComparator());
                                printElements(al);
                                Collections.sort(al,Collections.reverseOrder());
//new Student.StudentComparator());
                    printElements(al);
                }

}

class Student implements Comparable
{
          
int num;
          String  name;
          
static class StudentComparator implements Comparator
           
{
            
public int compare(Object o1,Object o2)
            
{
                      Student s1
=(Student)o1;
                              Student s2
=(Student)o2;
                              
int     result=s1.num > s2.num ? 1 : (s1.num==s2.num ? 0 : -1);
                              
if(result==0)
                                
{
                                          result
=s1.name.compareTo(s2.name);
                                }

                                        
return result;
                }

    }

          Student(
int num,String name)
          
{
                   
this.num=num;
                   
this.name=name;
          }

          
public int compareTo(Object o)
          
{
                   Student s
=(Student)o;
                   
return num>s.num ? 1  : (num==s.num ? 0 : -1);
          }

          
public String toString()
          
{
                   
return "num="+num+","+"name="+name;
          }

}

 

原创粉丝点击