关于ArrayList中的排序问题

Product.java文件

package test6;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class Compare {
	public static void main(String[] args) {
		
		Product p1 = new Product("1","a",10,3);
		Product p2 = new Product("2","b",20,9);
		Product p3 = new Product("3","c",15,4);
		Product p4 = new Product("4","d",30,1);
		
		ArrayList<Product> pList = new ArrayList<>();
		pList.add(p1);
		pList.add(p2);
		pList.add(p3);
		pList.add(p4);
		//使用匿名内部类进行collect排序
		Collections.sort(pList, new  Comparator<Product>(){

			@Override
			public int compare(Product p1,Product p2) {
				if(p1.getPrice()>p2.getPrice()){
					return 1;
				}
				// TODO Auto-generated method stub
				return -1;
			}});
		System.out.println(pList);
		// 方式2:不传专门的比较器给工具,前提是,list中的数据类型本身可比较
		// (数据类型本身要实现一个接口Comparable),然后就要实现其中的方法compareTo()
		Collections.sort(pList);
		System.out.println(pList);		
		
	}

}

Compare.java文件

package test6;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class Compare {
	public static void main(String[] args) {
		
		Product p1 = new Product("1","a",10,3);
		Product p2 = new Product("2","b",20,9);
		Product p3 = new Product("3","c",15,4);
		Product p4 = new Product("4","d",30,1);
		
		ArrayList<Product> pList = new ArrayList<>();
		pList.add(p1);
		pList.add(p2);
		pList.add(p3);
		pList.add(p4);
		//使用匿名内部类进行collect排序
		Collections.sort(pList, new  Comparator<Product>(){

			@Override
			public int compare(Product p1,Product p2) {
				if(p1.getPrice()>p2.getPrice()){
					return 1;
				}
				// TODO Auto-generated method stub
				return -1;
			}});
		System.out.println(pList);
		// 方式2:不传专门的比较器给工具,前提是,list中的数据类型本身可比较
		// (数据类型本身要实现一个接口Comparable),然后就要实现其中的方法compareTo()
		Collections.sort(pList);
		System.out.println(pList);		
		
	}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值