list排序

java Collections.sort()实现List排序的默认方法和自定义方法

邮差的信 提交于 2020-03-15 09:07:10
1.java提供的默认list排序方法 主要代码: List<String> list = new ArrayList();list.add("刘媛媛"); list.add("王硕"); list.add("李明"); list.add("刘迪"); list.add("刘布"); //升序 Collections.sort(list,Collator.getInstance(java.util.Locale.CHINA));//注意:是根据的汉字的拼音的字母排序的,而不是根据汉字一般的排序方法 for(int i=0;i<list.size();i++) { System.out.print(list.get(i)); } System.out.println(""); //降序 Collections.reverse(list);//不指定排序规则时,也是按照字母的来排序的 for(int i=0;i<list.size();i++) { System.out.print(list.get(i)); } 输出结果: 李明刘布刘迪刘媛媛王硕 王硕刘媛媛刘迪刘布李明 2.自定义的排序规则: 第一种是model类实现Comparable接口,重写重写int compareTo(Object o)方法 model类: public class StudentDTO

Java 集合

ぐ巨炮叔叔 提交于 2020-03-14 08:20:20
所有集合类都位于java.util包下。集合中只能保存对象(保存对象的引用变量)。当我们把一个对象放入集合中后,系统会把所有集合元素都当成Object类的实例进行处理。 Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些接口或实现类。 Set和List接口是Collection接口派生的两个子接口,Queue是Java提供的队列实现,类似于List。 Map实现类用于保存具有映射关系的数据(key-value)。 Set、List和Map可以看做集合的三大类。 List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问。 Set集合是无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问(也是不能集合里元素不允许重复的原因)。 Map集合中保存Key-value对形式的元素,访问时只能根据每项元素的key来访问其value。 接口 实现 历史集合类 Set HashSet TreeSet List ArrayList Vector LinkedList Stack Map HashMap Hashtable TreeMap Properties Collection Collection接口支持如添加和除去等基本操作。设法除去一个元素时

jqGrid 各种参数 详解

狂风中的少年 提交于 2020-03-13 19:52:02
jqGrid 各种参数 详解 JQGrid JQGrid是一个在jquery基础上做的一个表格控件,以ajax的方式和服务器端通信。 JQGrid Demo 是一个在线的演示项目。在这里,可以知道jqgrid可以做什么事情。 下面是转自其他人blog的一个学习资料,与其说是学习资料,说成查询帮助文档更加合适。 jqGrid 学习之 ------------- 安装 jqGrid安装很简单,只需把相应的css、js文件加入到页面中即可。 按照官网文档: /myproject/css/ ui.jqgrid.css /ui-lightness/ /images/ jquery-ui-1.7.2.custom.css /myproject/js/ /i18n/ grid.locale-bg.js list of all language files …. Changes.txt jquery-1.3.2.min.js jquery.jqGrid.min.js 在页面中写法: Java代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"

集合的排序

让人想犯罪 __ 提交于 2020-03-12 04:17:43
集合的排序 Set集合和List集合提供的子类都是线程不安全的。如果在多线程环境下必须要保证线程安全,可以使用集合的工具类来对集合进行操作。如Collections类,位于java.util包下,解释 this class consists exclusively of static methods that operate on or return collections. It contains polymorphic algorithms that operate on collections, “wrappers”, which return a new collection backed by a specified collection, and a few other odds and ends. 方法sort():对集合里的元素进行排序操作(默认从小到大排序) 方法reverse():对集合里的元素进行反转操作 public void m15 ( ) { List < Integer > ls = new ArrayList < > ( ) ; ls . add ( - 100 ) ; ls . add ( 13 ) ; ls . add ( 115 ) ; ls . add ( 128 ) ; System . out . println ( "---------

集合相关的常用工具类

半城伤御伤魂 提交于 2020-03-11 14:47:21
1. 简介 Java中的集合类既可以当做放其他数据的容器,又可以当做常见的数据结构使用。Java中提供了很多好用的工具类来操作这些集合类。本篇博客就来介绍下常用的集合工具类。集合常用的工具类大体可以分为3类: JDK本身提供的工具类; Guava提供的工具类; Apache common-Collection提供的工具类 2. JDK提供的工具类 主要由下面三个: Arrays Collections Objects Arrays 是操作数组对象的工具类, Collections 是操作集合对象的工具类。 Objects 是操作引用数据类型对象的工具类。 Arrays的常用方法: 普通 排序 : Arrays.sort(int[] a) Arrays.sort(int[] a, int fromIndex, int toIndex) 其他非boolean基础数据类型的数组对象以及实现Comparable接口的类的数组对象均有此方法。 并行排序 :JDK1.8新增。 Arrays.parallelSort(int[] a) Arrays.parallelSort(int[] a, int fromIndex, int toIndex) 其他非boolean基础数据类型的数组对象以及实现Comparable接口的类的数组对象均有此方法。 并行计算 :JDK1.8新增,支持函数式编程

数据结构(1)——排序

百般思念 提交于 2020-03-11 12:45:49
数据结构(1)——排序 冒泡排序 从左到右扫描数据,选择 最大 的数据,放在右边。 要点:比较相邻的两个数,如果左边的数大于右边的数就进行 交换 。交换次数很多。 # include <iostream> using namespace std ; void BubbleSort ( int list [ ] , int n ) ; int main ( ) { int a [ ] = { 2 , 4 , 6 , 8 , 0 , 1 , 3 , 5 , 7 , 9 } ; BubbleSort ( a , 10 ) ; for ( int k = 0 ; k < 10 ; k ++ ) cout << a [ k ] << " " ; return 0 ; } void BubbleSort ( int list [ ] , int n ) { for ( int i = 0 ; i < n - 1 ; i ++ ) { for ( int j = 0 ; j < n - i - 1 ; j ++ ) { if ( list [ j ] > list [ j + 1 ] ) std :: swap ( list [ j ] , list [ j + 1 ] ) ; } } } 选择排序 从当前未排序的整数中找一个 最小 的整数,将它放在已排序的整数列表的最后 要点:选择排序选最小的

Springboot中使用Redis

巧了我就是萌 提交于 2020-03-08 15:05:04
一、Springboot配置Redis pom.xml文件需要的依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <!--<version>2.1.4.RELEASE</version>--> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency> 注意 : 1. 是spring-boot-starter-data-reds; 2. 因为Springboot 2.0 中redis客户端使用了Lettue, 其依赖于commons, 所以加入以上(似乎Jedis依然可以使用.) redis服务 : 下载redis的Windows版本, 官网是Linux版本, Windows版由微软在github上维护, 可前往下载, 压缩包解压之后, 点击redis-server.exe开启本地redis服务, 端口号6379. 可使用redisclient客户端查看数据库 二、application.properties配置 ##

CListCtrl控件的使用指南

和自甴很熟 提交于 2020-03-08 11:22:13
创建图形列表并和CListCtrl关联: m_image_list.Create(IDB_CALLER2, 16, 10, RGB(192,192, 192)); m_image_list.SetBkColor( GetSysColor( COLOR_WINDOW ) ); m_caller_list.SetImageList( &m_image_list, LVSIL_SMALL); 为报表添加4列: char *szColumn[]={"昵称","IP地址","登陆时间","状态"}; int widths[]={100,98,70,55}; LV_COLUMN lvc; lvc.mask=LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM; lvc.fmt=LVCFMT_LEFT; for(int i=0;i<4;i++) {//插入各列 lvc.pszText=szColumn[i]; lvc.cx=widths[i]; lvc.iSubItem=i; m_caller_list.InsertColumn(i,&lvc); } 为报表添加两项,以附加方式添加: char* data[4]; data[0]="所有人"; data[1]="0.0.0.0"; data[3]="在线"; data[2]=new char; CTime now

List对象分组排序算法

霸气de小男生 提交于 2020-03-08 03:00:10
场景:   List里面的对象是订单的节点,比如我们快递的物流状态,这个是需要有序的,所以需要根据订单号进行分组排序。 import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; public class GroupSortTest { public static void main(String[] args) { List<Order> list = new ArrayList<Order>(); Order o1 = new Order("10086","3",(long) 1008603); Order o2 = new Order("10086","2",(long) 1008602); Order o3 = new Order("10086","1",(long) 1008601); Order o4 = new Order("10010","1",(long) 1001001); Order o5 = new Order("10000","3",(long) 1000003); Order o6 = new

Python 的列表排序

不问归期 提交于 2020-03-08 02:45:20
在 Python 中, 当需要对一个 list 排序时, 一般可以用 list.sort() 或者 sorted(iterable[, cmp[, key[, reverse]]]). 其中: cmp(e1, e2) 是带两个参数的比较函数, 返回值: 负数: e1 < e2, 0: e1 == e2, 正数: e1 > e2. 默认为 None, 即用内建的比较函数. key 是带一个参数的函数, 用来为每个元素提取比较值. 默认为 None, 即直接比较每个元素. reverse 是一个布尔值, 表示是否反转比较结果. 我以前在做比较复杂的排序时, 喜欢写一个定制的 cmp 函数. 当我看了 Python 文档后, 发现我的做法是不好的. 简单说明如下: 1, 通常, key 和 reverse 比 cmp 快很多, 因为对每个元素它们只处理一次; 而 cmp 会处理多次. 也就是说, 同等情况下, 写 key 函数比写 cmp 函数要高效很多. 2, 对一些貌似比较复杂的排序, 也是不需要写 cmp 函数的, 举例如下: >>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10),] 用元素索引做 key: >>> sorted(students, key=lambda student: