A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.util.*;

class Person
{
               private String name;
               private int age;
              Person(String name,int age)
              {
                     this.name = name;
                     this.age = age;
              }
              public String getName()
              {
                   return name;
               }
                public int getAge()
               {

                   return age;
               }

}

class ArrayListTest
{       


                 public static void sop(Object obj)
                 {
                       System.out.println(obj);
                  }
                 public static void main(String[] args)
                 {
                          ArrayList al = new ArrayList();


                             al.add(new Person("lisi",46));
                            al.add(new Person("wangwu",35));
                            al.add(new Person("zhouqi",25));
                            al.add(new Person("sisan",20));
               
                             Iterator it = al.iterator();
                             while(it.hasNext())
                             {
                                    Person p = (Person)it.next();
                                    sop(p.getName()+"::"+p.getAge());
                              }
               

               
               
                }

       
                  public static ArrayList singleElement(ArrayList al)
                  {
                          ArrayList newAl = new ArrayList();
                          Iterator it = al.iterator();
               
                         while(it.hasNext())
                         {
                       
                                   Object obj = it.next();

                                    if (!newAl.contains(obj))
                                     newAl.add(obj);
                         
                         
                           }     
                                    return newAl;
            }

}

7 个回复

倒序浏览
应该是年龄倒序吧, 可以在类里实现 comparable 接口 或者 重写 compara
回复 使用道具 举报
自己定义一个排序的方法,俩个年龄相减,根据返回值判断
回复 使用道具 举报
  有两种的方法可以实现啊!   楼上的已经说了!    你的知识点掌握的还是不够清晰!
回复 使用道具 举报
666611666.…………。
回复 使用道具 举报
Collections.sort(al);第一种方法,元素(Person)需要实现Comparable接口,然后重写CompareTo方法
Collections.sort(al,比较器);第二种方法,传入比较器到sort方法参数里
比较器需要实现Comparator接口,重写Compare方法
回复 使用道具 举报
黑夜中那颗星 发表于 2016-1-4 13:45
Collections.sort(al);第一种方法,元素(Person)需要实现Comparable接口,然后重写CompareTo方法
Collectio ...

看的不是很明白  能详细的写个代码吗? 感谢
回复 使用道具 举报
wxw19910324 发表于 2016-1-4 16:37
看的不是很明白  能详细的写个代码吗? 感谢

第一种:
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. public class Test {
  4.         public static void main(String[] args) {
  5.                 ArrayList<Person> al = new ArrayList<Person>();
  6.                 al.add(new Person("lisi", 46));
  7.                 al.add(new Person("wangwu", 35));
  8.                 al.add(new Person("zhouqi", 25));
  9.                 al.add(new Person("sisan", 20));
  10.                 Collections.sort(al);
  11.                 for(Person p:al){
  12.                         System.out.println(p.getName()+"::"+p.getAge());
  13.                 }
  14.         }
  15. }

  16. class Person implements Comparable<Person> {
  17.         private String name;
  18.         private int age;

  19.         public String getName() {
  20.                 return name;
  21.         }

  22.         public int getAge() {
  23.                 return age;
  24.         }

  25.         public Person(String name, int age) {
  26.                 this.name = name;
  27.                 this.age = age;
  28.         }

  29.         @Override
  30.         public int compareTo(Person o) {
  31.                 int num = new Integer(o.getAge()).compareTo(this.getAge());
  32.                 return num==0?o.getName().compareTo(this.getName()):num;
  33.         }
  34. }
复制代码

第二种:
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.Comparator;
  4. public class Test {
  5.         public static void main(String[] args) {
  6.                 ArrayList<Person> al = new ArrayList<Person>();
  7.                 al.add(new Person("lisi", 46));
  8.                 al.add(new Person("wangwu", 35));
  9.                 al.add(new Person("zhouqi", 25));
  10.                 al.add(new Person("sisan", 20));
  11.                 Collections.sort(al,new Comparator<Person>(){
  12.                         public int compare(Person o1, Person o2) {
  13.                                 int num = new Integer(o2.getAge()).compareTo(o1.getAge());
  14.                                 return num==0?o2.getName().compareTo(o1.getName()):num;
  15.                         }
  16.                         
  17.                 });
  18.                 for(Person p:al){
  19.                         System.out.println(p.getName()+"::"+p.getAge());
  20.                 }
  21.         }
  22. }

  23. class Person{
  24.         private String name;
  25.         private int age;

  26.         public String getName() {
  27.                 return name;
  28.         }

  29.         public int getAge() {
  30.                 return age;
  31.         }

  32.         public Person(String name, int age) {
  33.                 this.name = name;
  34.                 this.age = age;
  35.         }
  36. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马