`

collection-sort

 
阅读更多
集合元素排序

1.包装类型数据排序

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Random;

public class CollectionSortTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		List<Integer> listInteger = new ArrayList<Integer>();
		Random random = new Random(1);
		for(Integer index = 0 ; index <= 10 ; index ++){
			listInteger.add(random.nextInt(100));
		}
                // 默认按照升序排列
		Collections.sort(listInteger);
		System.out.println(listInteger);
                // 倒叙:添加比较器;原则:返回值为-1交换元素;1不交换
                // 倒叙:在返回值前添加-1,就会使返回值的正负属性颠倒
		Comparator<Integer> integerDesc = new Comparator<Integer>() {

			@Override
			public int compare(Integer o1, Integer o2) {
				return  -(o1 < o2 ? -1 : o1 > 02 ? 1 : 0);
			}
		};
		Collections.sort(listInteger,integerDesc);
		System.out.println(listInteger);
	}

}


2.对象比较

固定排序顺序

按价格倒叙,按销量升序
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CollectionObjectSortTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		List<Product> productList = new ArrayList<Product>();
		
		Product product1 = new Product("商品1", 20.00, 100);
		Product product2 = new Product("商品2", 20.00, 200);
		Product product3 = new Product("商品3", 30.00, 100);
		Product product4 = new Product("商品4", 50.00, 100);
	
		productList.add(product1);
		productList.add(product2);
		productList.add(product3);
		productList.add(product4);
		Collections.sort(productList);
		System.out.println(productList);
	}

}
class Product implements Comparable<Product>{
	private String name ;
	private Double price ; // 价格
	private Integer amount ; // 销售总量
	public Product() {
		super();
	}
	public Product(String name, Double price, Integer amount) {
		super();
		this.name = name;
		this.price = price;
		this.amount = amount;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Double getPrice() {
		return price;
	}
	public void setPrice(Double price) {
		this.price = price;
	}
	public Integer getAmount() {
		return amount;
	}
	public void setAmount(Integer amount) {
		this.amount = amount;
	}
	@Override
	public String toString() {
		return "Product [name=" + name + ", price=" + price + ", amount="
				+ amount + "]";
	}
	@Override
	public int compareTo(Product o) {
		if(!this.price.equals(o.price )){
			return -(this.price < o.price ?-1:this.price > o.price ? 1 : 0 );
		}else{
			return this.amount < o.amount ? -1 : this.amount > o.amount ? 1 : 0;
		}
	}
	
}




3.动态排序

通过 Compartor<Product> byPriceAndAmount = new Compator<Product>(){}
重复上面的比较条件即可

4.比较

固定排序,不可改变排序顺序;但如果需求是动态排序,则使用后者
分享到:
评论

相关推荐

    angular-collection-sort:简单的AngularJS指令,可对表进行排序。 支持Restangular集合(后端排序)和纯arraysobjects集合(前端排序)

    在`angular-collection-sort-master`压缩包中,包含了一个示例项目,展示了如何在实际应用中使用这个指令。你可以通过运行这个示例来更深入地理解其工作原理。 总的来说,`angular-collection-sort` 提供了一个简洁...

    ampersand-collection-sort-mixin:用于扩展与号集合的 mixin,具有按多个属性排序和升序降序的能力。 向集合中添加新模型或调用 sort() 方法时执行排序

    安装 npm install ampersand-collection-sort-mixin用法mixin 使用存储在会话属性中的两个属性: sortProps - 字符串数组或字符串。 用于对集合进行排序的属性名称数组。 如果只有一个,它可以只是一个字符串。 sort...

    Laravel开发-laravel-collection

    这个压缩包文件"laravel-collection-master"很可能包含了Laravel Collection的源码,让我们深入探讨一下Laravel Collection的相关知识点。 **一、Laravel Collection基础** 1. **创建Collection实例**: Laravel ...

    metalsmith-collection-scoping:一个 Metalsmith 插件,可让您将范围应用于集合

    metalsmith-collection-scoping 一个插件,可让您将范围应用于集合。... 例如: {" plugins " : {" metalsmith-collections " : {" articles " : { " sortBy " : " date " , " reverse " : true }, " secrets " : {

    collection-macros

    "collection-macros" 通过自定义的宏,弥补了这一空白,使得开发者可以更加优雅地进行集合操作。 首先,让我们来看看 "collection-macros" 提供的一些主要功能: 1. **链式操作**:这个库允许你对集合进行一系列...

    typscript-collection-sorter

    "typescript-collection-sorter" 是一个基于 TypeScript 的项目,主要关注于集合排序的实现。TypeScript 是 JavaScript 的超集,提供了静态类型系统、类、接口等更丰富的语法特性,旨在提高代码质量和可维护性。在 ...

    java-collection-example

    使用Collections.sort()方法可以对List进行排序,若需要自定义排序规则,可以实现Comparator接口。 8. 并集、交集、差集(union, intersection, difference): Collections提供了静态方法处理两个集合的并集、...

    Laravel开发-collection

    5. **排序数据**:`sort()`、`sortBy()`、`sortByDesc()`,可以对集合进行排序。 6. **合并数据**:`merge()`,合并多个集合为一个新的集合。 7. **扁平化数据**:`flatten()`,将多级嵌套的集合变为单级集合。 8. *...

    js-deep-sort-object:简单的模块,可通过其键对对象进行递归排序

    安装$ npm install deep-sort-object - NPM $ bower install deep-sort-object bower 浏览器文件名为index.umd.js ,它支持CommonJS,AMD和globals( deepForEach )。 如果要在旧的浏览器上运行此模块,则必须包括 ...

    collection-examples:集合的实现示例

    此外,集合框架还包含了一些高级特性,如集合的转换(Collections.sort(),Arrays.asList())、集合的并发处理(ConcurrentHashMap,CopyOnWriteArrayList)以及流API(Stream)。这些特性大大提高了代码的可读性和...

    11.集合框架001-Collection接口6-9

    集合框架001-Collection接口6-9"中涉及的关键知识点,包括`Collection`接口、`ArrayList`源码分析、`Comparator`接口以及`Comparable`接口,以及`Arrays`类中的算法。 首先,`Collection`接口是Java集合框架的根...

    collection:PHP 集合

    这使您能够count()集合,在其上使用foreach ,像数组$a[1]一样访问它并对其内容进行排序$a-&gt;sort($sorter) 。 除了常规集合之外,还有LazyCollection允许您指定一个闭包,该闭包仅在需要时才初始化集合内容。 创建...

    Collections源码java-Java-Collection-:对Java的Collection框架源码阅读

    3. **集合查询**:`isEmpty(Collection&lt;?&gt; c)`检查集合是否为空,`max(Comparator&lt;? super T&gt; comparator, Collection&lt;? extends T&gt; coll)`找到集合中的最大元素,`min(Comparator&lt;? super T&gt; comparator, ...

    11.集合框架001-Collection接口4-5

    这些方法包括排序(`sort(List&lt;T&gt; list)`)、查找(`binarySearch(List&lt;? extends Comparable&lt;? super T&gt;&gt; list, T key)`)、反转(`reverse(List&lt;?&gt; list)`)以及集合的复制(`copy(List&lt;? super T&gt; dest, List...

    java8源码-java-collection-practice:集合操作的一些Java基础实践

    本项目致力于练习集合常用的操作:filter,map,flatmap,reduce,sort,skip,limit,allmatch等。 对于集合的操作,可以有多种方式实现,本教程主要用Java8 Stream API 的方式实现,您在实现测试的过程中,可以正...

    java collection framework

    - `Collections.sort()`: 对 List 进行排序。 - `Collections.reverse()`: 反转 List 的顺序。 - `Collections.shuffle()`: 打乱 List 的顺序。 - `Collections.max()` 和 `Collections.min()`: 获取 List 中的最大...

    Collection、Map、List、Set、Iterator

    - `sort(T[] a)`:对数组进行排序。 - `binarySearch(T[] a, T key)`:在已排序的数组中查找指定元素的位置。 - `copyOf(T[] original, int newLength)`:创建一个新的数组,其长度为 `newLength`,并将原数组的...

    开源项目-imiskolee-collection.zip

    8. `array_sort`:对数组进行排序。 在Golang中,这些功能通常需要通过循环和条件判断来实现,而imiskolee-collection则通过封装这些操作,提供了更简洁的API,提高了代码的可读性和可维护性。 此外,Golang的接口...

    Collection使用

    对于需要排序的集合,可以使用Collections.sort()方法。对于Set集合,可以使用TreeSet,它会根据元素的自然顺序或提供的Comparator进行排序。 ### 集合的比较 两个集合可以通过equals()方法进行比较,这个方法会...

Global site tag (gtag.js) - Google Analytics