关于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);		
		
	}

}

猜你喜欢

转载自blog.csdn.net/m0_37719047/article/details/88552637