Android Collections.sort的几种用法介绍

2024-06-09 03:08

本文主要是介绍Android Collections.sort的几种用法介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Java代码  收藏代码
  1. /** 
  2. * @author alex 
  3. * @version 创建时间:2014-11-3 上午10:49:36 
  4. * 类说明 
  5. */   
  6. package com.jabberchina.test;  
  7.   
  8. import java.util.ArrayList;  
  9. import java.util.Collections;  
  10. import java.util.Comparator;  
  11. import java.util.List;  
  12.   
  13. public class SortTest {  
  14.       
  15.       
  16.       
  17.     public static void main(String[] args) {  
  18.         List<String> lists = new ArrayList<String>();  
  19.         List<A> list = new ArrayList<A>();  
  20.         List<B> listB = new ArrayList<B>();  
  21.         lists.add("5");  
  22.         lists.add("2");  
  23.         lists.add("9");  
  24.         //lists中的对象String 本身含有compareTo方法,所以可以直接调用sort方法,按自然顺序排序,即升序排序  
  25.         Collections.sort(lists);  
  26.           
  27.         A aa = new A();  
  28.         aa.setName("aa");  
  29.         aa.setOrder(1);  
  30.         A bb = new A();  
  31.         bb.setName("bb");  
  32.         bb.setOrder(2);  
  33.         list.add(bb);  
  34.         list.add(aa);  
  35.         //list中的对象A实现Comparable接口  
  36.         Collections.sort(list);  
  37.           
  38.         B ab = new B();  
  39.         ab.setName("ab");  
  40.         ab.setOrder("1");  
  41.         B ba = new B();  
  42.         ba.setName("ba");  
  43.         ba.setOrder("2");  
  44.         listB.add(ba);  
  45.         listB.add(ab);  
  46.         //根据Collections.sort重载方法来实现  
  47.         Collections.sort(listB,new Comparator<B>(){  
  48.             @Override  
  49.             public int compare(B b1, B b2) {  
  50.                 return b1.getOrder().compareTo(b2.getOrder());  
  51.             }  
  52.               
  53.         });  
  54.           
  55.         System.out.println(lists);  
  56.         System.out.println(list);  
  57.         System.out.println(listB);  
  58.           
  59.     }  
  60.   
  61. }  
  62.   
  63. class A implements Comparable<A>{  
  64.     private String name;  
  65.     private Integer order;  
  66.     public String getName() {  
  67.         return name;  
  68.     }  
  69.     public void setName(String name) {  
  70.         this.name = name;  
  71.     }  
  72.       
  73.     public Integer getOrder() {  
  74.         return order;  
  75.     }  
  76.     public void setOrder(Integer order) {  
  77.         this.order = order;  
  78.     }  
  79.     @Override  
  80.     public String toString() {  
  81.         return "name is "+name+" order is "+order;  
  82.     }  
  83.     @Override  
  84.     public int compareTo(A a) {  
  85.         return this.order.compareTo(a.getOrder());  
  86.     }  
  87.       
  88. }  
  89.   
  90. class B{  
  91.     private String name;  
  92.     private String order;  
  93.     public String getName() {  
  94.         return name;  
  95.     }  
  96.     public void setName(String name) {  
  97.         this.name = name;  
  98.     }  
  99.     public String getOrder() {  
  100.         return order;  
  101.     }  
  102.     public void setOrder(String order) {  
  103.         this.order = order;  
  104.     }  
  105.     @Override  
  106.     public String toString() {  
  107.         return "name is "+name+" order is "+order;  
  108.     }  
  109. }  
  110.   
  111. 打印的结果为:  
  112.  [259]  
  113. [name is aa order is 1, name is bb order is 2]  
  114. [name is ab order is 1, name is ba order is 2]  

这篇关于Android Collections.sort的几种用法介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1044080

相关文章

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法

Java8 Collectors.toMap() 的两种用法

《Java8Collectors.toMap()的两种用法》Collectors.toMap():JDK8中提供,用于将Stream流转换为Map,本文给大家介绍Java8Collector... 目录一、简单介绍用法1:根据某一属性,对对象的实例或属性做映射用法2:根据某一属性,对对象集合进行去重二、Du

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

Python中的sort方法、sorted函数与lambda表达式及用法详解

《Python中的sort方法、sorted函数与lambda表达式及用法详解》文章对比了Python中list.sort()与sorted()函数的区别,指出sort()原地排序返回None,sor... 目录1. sort()方法1.1 sort()方法1.2 基本语法和参数A. reverse参数B.

vue监听属性watch的用法及使用场景详解

《vue监听属性watch的用法及使用场景详解》watch是vue中常用的监听器,它主要用于侦听数据的变化,在数据发生变化的时候执行一些操作,:本文主要介绍vue监听属性watch的用法及使用场景... 目录1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景附Watch 的

Java Instrumentation从概念到基本用法详解

《JavaInstrumentation从概念到基本用法详解》JavaInstrumentation是java.lang.instrument包提供的API,允许开发者在类被JVM加载时对其进行修改... 目录一、什么是 Java Instrumentation主要用途二、核心概念1. Java Agent

Java 中 Optional 的用法及最佳实践

《Java中Optional的用法及最佳实践》在Java开发中,空指针异常(NullPointerException)是开发者最常遇到的问题之一,本篇文章将详细讲解Optional的用法、常用方... 目录前言1. 什么是 Optional?主要特性:2. Optional 的基本用法2.1 创建 Opti

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返