java Collections Arrays ArrayList 类的运用 进行对象排序

 

 /*
 Collections类的所有方法都是静态的 sort方法 可以为一个列表进行排序 
 List 接口从 Collection派生来的  ArrayList类实现了  List接口 所以有iterator方法
 Arrays类的sort方法是给一个数组进行排序
 Collections类封装了静态方法 对列表操作

Arrays 类可以对数组进行排序等等
 */
 import java.util.*;
 class  Test 
{  
 
  public static void  printElements(Collection c)  //用迭代器的形式输出每个元素
 {
   Iterator i= c.iterator();
   while(i.hasNext())
   System.out.println(i.next());
 
 }
 public  static  void main(String []args)
 {
  //插入Point
  ArrayList<Point>  arr1 =new ArrayList<Point>() ;
  Point p1=new Point(1,3);
  Point p2=new Point(2,7);
  Point p3=new Point(9,6);
  Point p4=new Point(4,3);
  arr1.add(p1);
  arr1.add(p2);
  arr1.add(p3);
  arr1.add(p4);
  printElements(arr1); //输出元素    
  
  
  //插入Student
   ArrayList<Student>  arr2=new ArrayList<Student>() ;
  Student s1=new Student(1,"xiaozhang"); 
  Student s2=new Student(3,"xiaoli"); 
  Student s3=new Student(2,"xiaowang"); 
   Student s4=new Student(2,"xa"); 
  arr2.add(s2);
  arr2.add(s1);
   arr2.add(s3);
   arr2.add(s4);
   // Collections.sort(arr2);  //利用Collection类的静态方法 sort进行列表的排序 
   //我们还可以定义自己的比较器 这个比较器从 Comparator接口 实现
   
  Collections.sort(arr2, Collections.reverseOrder());// Collections.reverseOrder() 函数直接返回一个反序 比较器对象  Comparator
   printElements(arr2); //输出反序排序元素      
 
 
  System.out.println("max= "+Collections.max(arr2));  //通过静态方法获得最大值
  System.out.println("min= "+Collections.min(arr2));  //通过静态方法获得最小值    
  
  
  
  
  
 }
}
class Point
{
 int  x,y;
 Point(int x,int y)
 {
  this.x=x;
  this.y=y;
 }
 public  String toString()
 {
  return "x="+x+",y="+y;
 }
}

class   Student   implements Comparable
{
 int num;
 String name;
 Student(int num,String name)
 {
  this.num=num;
  this.name=name; 
 }
 public  String toString()
 {
  return num+":"+name;
 }
 
 public int compareTo(Object o)
 {
  Student s=(Student)o;
  return num>s.num?1:(num==s.num?0:-1);
 }
 
 
 //比较器类
 static  class  StudentComparator  implements  Comparator   //内部类 比较器
 {
  public int compare(Object o1, Object o2) 
  {
   Student s1=(Student)o1;
   Student s2=(Student)o2;
    int num=s1.num>s2.num?1:(s1.num==s2.num?0:-1) ;
   if(num==0)
   {
    return s1.name.compareTo(s2.name);
   }
   
   return  num;
  }
 }
 

}

时间: 2024-08-01 10:34:53

java Collections Arrays ArrayList 类的运用 进行对象排序的相关文章

java的Arrays工具类用法 java的Arrays工具类实例

1.fill方法 fill方法主要用来填充数组,这里我们举最简单的int类型吧(其它类型的一样) 看Arrays的fill源码 示例代码: Java代码 publicstaticvoidmain(String[] args) { inta[]=newint[5]; //fill填充数组 Arrays.fill(a,1); for(inti=0;i<5;i++)//输出5个1 System.out.println(a[i]); } 填充部分数组源码: 示例: Java代码 publicstatic

Java中ArrayList类的用法与源码完全解析_java

System.Collections.ArrayList类是一个特殊的数组.通过添加和删除元素,就可以动态改变数组的长度. 一.优点1. 支持自动改变大小的功能 2. 可以灵活的插入元素 3. 可以灵活的删除元素 二.局限性跟一般的数组比起来,速度上差些 三.添加元素1.publicvirtualintAdd(objectvalue); 将对象添加到ArrayList的结尾处 ArrayList aList = new ArrayList(); aList.Add("a"); aLis

Java集合框架:Arrays工具类

java.util.Arrays类能方便地操作数组,它提供的方法都是静态的.整个Arrays工具类的实现有3000+行,但是归纳总结一下可知它有以下功能(9个): 1. asList 定义: @SafeVarargs public static <T> List<T> asList(T... a) { return new ArrayList<>(a); } 功能:将一个数组(变长参数的语法糖实现就是数组)转变成一个List(确切的来说是ArrayList),注意这个L

Java中ArrayList类的使用方法_java

Java中ArrayList类的用法 1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小 2.如何使用ArrayList 最简单的例子: ArrayList List = new ArrayList(); for( int i=0;i <10;i++ ) //给数组增加10个Int元素 List.Add(i); //..

Java程序员的日常—— Arrays工具类的使用

这个类在日常的开发中,还是非常常用的.今天就总结一下Arrays工具类的常用方法.最常用的就是asList,sort,toStream,equals,copyOf了.另外可以深入学习下Arrays的排序算法,这个还是非常有用的. 所有的方法都是在下面的类中进行测试的: public class ArraysTest { String[] array = new String[]{"a","c","2","1","b&

关于Java Collections API您不知道的5件事,第1部分

定制和扩展 Java Collections 对于很多 Java 开发人员来说,Java Collections API 是标准 Java 数组及其所有缺点的一个非常需要的替代品.将 Collections 主 要与 ArrayList 联系到一起本身没有错,但是对于那些有探索精神的人来说,这只是 Collections 的冰山一角. 虽然 Map(以及它的常用实现 HashMap)非常适合名-值对或键-值对,但是没有理由让自己局限于这些熟悉的工具.可以使用适当的 API,甚至适当的 Colle

java写的StringList类

  delphi的StringList类真好用啊 试着用java写了一个 package com.zhao_yi.sysutils.classes; import java.util.List;import java.util.ArrayList;import java.util.StringTokenizer;import com.zhao_yi.sysutils.SysUtil;import com.zhao_yi.sysutils.*;import java.util.Arrays;imp

Java基础-Java语言的Socket类详细介绍

线性表,链表等是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构.这些类均在java.util包中. Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Ele

JAVA LinkedList和ArrayList的使用及性能分析_java

第1部分 List概括List的框架图List 是一个接口,它继承于Collection的接口.它代表着有序的队列.AbstractList 是一个抽象类,它继承于AbstractCollection.AbstractList实现List接口中除size().get(int location)之外的函数.AbstractSequentialList 是一个抽象类,它继承于AbstractList.AbstractSequentialList 实现了"链表中,根据index索引值操作链表的全部函数