集合排序总结

一、Arrays类:

java.util.Arrays 包含数组的各种静态方法。

java.util.Collections工具类

是java集合框架中,用来操作集合对象的工具类。

也是java集合框架的成员 跟 Collection 与 Map关系是并列的。

有一个 sord() 排序方法

例如:

List <Integer> integerList =new ArraysList<Integer> (); 如图:

Integer k;

for (int i=0;i<10;i++)

{

Random r =new Random();

do {

k = r.nextInt(1000); --随机数

} while (list.contains(k));

list.add(k);

System.out.println("随机数字:"+k);

}

System.out.println("-----------------排序前----------------");

for(Integer integer : list)

{

System.out.println("排序前随机数字:"+integer);

}

System.out.println("-----------------排序后----------------");

Collections.sort(list); ---已经将集合中的序号进行排序

for(Integer integer : list)

{

System.out.println("排序前随机数字:"+integer);

}

输出结果为:

二、对list中的引用类型排序

Comparable接口 ----默认的排序规则

实现该接口表示:这个类得实例可以比较大小,可以进行自然排序

默认的比较规则

其实实现类需实现compoareTo()方法。

compareTo()方法返回正数·表示大,负数表示小,0表示相等

Comparator接口 ------临时比较规则 比较工具接口

用于临时比较规则而不是默认比较规则

其实实现类需要实现compare()方法

Comparator和Comparable 都是java集合开框架成员

demo 如下:

UserEntity实体类继承接口 implements Comparable<T> 并且重写compareTo方法

id 为int类型 ,如果是String类型 则返回值为return this.id.cpmpareTo(u .id);

@Override

public int compareTo(UserEntity u)

{

if (this.id<u.id) return -1;

else if (this.id==u.id) return 0;

else return 1;

}

public static void ListSord()

{

Scanner sc = new Scanner(System.in);

List<UserEntity> list = new ArrayList<UserEntity>();

int i = 0;

while (i < 3)

{

UserEntity u = new UserEntity();

System.out.println("请输入用户ID:");

u.setId(Integer.parseInt(sc.next()));

System.out.println("请输入用户姓名:");

u.setName(sc.next());

i++;

list.add(u);

}

 

System.out.println("-----------------排序前----------------");

for (UserEntity entity : list)

{

System.out.println("id:" + entity.getId() + "姓名排序:" + entity.getName());

}

System.out.println("-----------------排序后----------------");

Collections.sort(list);

for (UserEntity entity : list)

{

System.out.println("id:" + entity.getId() + "姓名排序:" + entity.getName());

}

}

输出结果为:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值