list排序

JAVA(时间对比排序程序)

匿名 (未验证) 提交于 2019-12-02 21:52:03
package basic.day14; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Collections; /* * 时间对比排序程序 * 2012/10/24 * */ public class TimeDemo { //定义类的私有属性 private int hour; private int minute; private int second; //时间构造器 public TimeDemo(int h,int m,int s){ this.hour=h; this.minute=m; this.second=s; } //封装中的set方法 public void setHour(int hour){ this.hour=hour; } public void setMinute(int minute){ this.minute=minute; } public void setSecond(int second){ this.second=second; } //封装中的get方法 public int getSecond(){ return second; } public int getMinute(){ return minute; } public

Java 读写 excel 实战完全解析

匿名 (未验证) 提交于 2019-12-02 21:52:03
本文微信公众号「AndroidTraveler」首发。 时值毕业季,很多毕业生初入职场。 因此,这边也写了一些新手相关的 Android 技术点。 比如上一篇的 Android 开发你需要了解的那些事 就是列举了一些小点,避免新手 Android 开发者踩坑。 同时,也是恰逢暑假,因此大学生处于放假阶段。 这一篇主要是来自一位大学生的提问。 因此这边分享一下我个人的解题思路和方法,希望能够对他有所启发。 欢迎大家交流分享。 使用语言:JAVA 需求:读取一个Excel表格里面的数据(例如:姓名+分数),对其进行重新排序(按分数高低),然后输出在另一个Excel表格。 一般对需求我们都采取拆分思维。 将大问题拆成小问题,小问题解决了,整个大问题也就解决了。 这个需求很明确,需要解决三个问题: 读取 Excel 表格数据 对数据排序 将数据写入另一个 Excel 表格 我们这里要求使用 Java 语言,而 Java 语言一个很重要的点就是面向对象。 因此首先我们要考虑一下,这个题目里面有哪些类需要我们创建。 大概可以想象需要下面这些类: 读取数据类:ExcelReader 写入数据类:ExcelWriter 数据排序类:由于 Java API 自带,所以不需要重复造轮子 数据模型类:StudentScore 启动类:ParserStart,带有 main 方法 大概的 UML 图如下:

java8 lamb表达式对List排序

匿名 (未验证) 提交于 2019-12-02 21:40:30
场景一:List<Long> 或其他泛型,非对象 List<Long> ids = new ArrayList(); ids.add(100000001L); ids.add(100000011L); ids.add(100000201L); ids.add(100000091L); ids.add(100000021L); ids.add(100000006L); //升序 ids.sort((h1, h2) -> h1.compareTo(h2)); //降序 ids.sort((h1, h2) -> h2.compareTo(h1));

Java-慕课网例子-对列表元素排序

匿名 (未验证) 提交于 2019-12-02 21:35:18
0.描述 /** * 目标:给字符串列表元素排序; * 步骤:1.随机生成10对字符串; * 2.调用sort方法排序; * 要求:生成的字符串内容不相同;字符可以相同;字符串长度为10以内; */ 1.程序与结果 import java . util . * ; public class CollectionsTest { /** * 目标:给字符串列表元素排序; * 步骤:1.随机生成10对字符串; * 2.调用sort方法排序; * 要求:生成的字符串内容不相同;字符可以相同;字符串长度为10以内; */ public static void main ( String [ ] args ) { List list = generateStringList ( ) ; sortStringList ( list ) ; } //实现排序并打印的方法 public static void sortStringList ( List < String > list ) { System . out . println ( "排序前的list元素为:" + Arrays . toString ( list . toArray ( ) ) ) ; Collections . sort ( list ) ; System . out . println ( "-------------

夯实Java基础(二十四)——Java8新特征之Stream API

有些话、适合烂在心里 提交于 2019-12-02 20:15:55
1、Stream简介 Java8中除了引入了好用的Lambda表达式、Date API之外,另外还有一大亮点就是Stream API了,也是最值得所有Java开发人员学习的一个知识点,因为它的功能非常的强大,尤其是和前面学习的Lambda表达式、函数式接口、方法引用共同使用的时候。 Stream流是数据渠道,用于操作数据源所生成的元素序列,即操作集合、数组等等。其中集合和stream的区别是:集合讲的是数据,而stream讲的是计算 。 Stream的API全部都位于java.util.stream这样一个包下,它能够帮助开发人员从更高的抽象层次上对集合进行一系列操作,就类似于使用SQL执行数据库查询。而借助java.util.stream包,我们可以简明的声明性的表达集合,数组和其他数据源上可能的并行处理。实现从外部迭代到内部迭代的改变。它含有高效的聚合操作、大批量的数据处理,同时也内置了许多运算方式,包括筛选、排序、聚合等等。简单来说,用Stream来操作集合——减少了代码量,增强了可读性,提高运行效率。 然后这里要提一下:Stream和Java IO中的stream是完全不同概念的两个东西。本文要讲解的stream是能够对集合对象进行各种串行或并发聚集操作,而Java IO流用来处理设备之间的数据传输,它们两者截然不同。 Stream的主要特点有: 1

八大排序算法

让人想犯罪 __ 提交于 2019-12-02 20:10:24
一、直接插入排序 原理 :直接插入排序(Straight Insertion Sorting)的基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。 public void insertSort(int[] arr) { int len = arr.length; int insertNum; for(int i=1; i < len; len++) { insertNum = arr[i]; int j = i - 1; while (j >= 0 && arr[j] > insertNum) { arr[j+1] = arr[j]; j--; } arr[j+1] = insertNum; } } 二、希尔排序 针对直接插入排序的效率问题,有人对次进行了改进与升级,这就是现在的希尔排序。 希尔排序 ,也称 递减增量排序算法 ,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的: 插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率 但插入排序一般来说是低效的, 因为插入排序每次只能将数据移动一位 对于直接插入排序问题,数据量巨大时。 将数的个数设为n,取奇数k=n/2

TP5 按照汉字的拼音排序

十年热恋 提交于 2019-12-02 16:34:40
业务需求:接口返回一个列表,但是这个列表要求按一定的条件排序,条件如下: 1,某字段(field1)为null的排前面 2,某字段(field2)为null的排前面 3,姓名(field3)按照汉字的拼音排序 4,某字段(field4)按照ID倒序排序 乍一听有点复杂,其他的不多说,这篇文章主要讲怎么在TP5里实现按照汉字的拼音排序 多字段排序这里要介绍到TP5 一个类 想了解的可以参考这篇文章 《文章名字》 查阅了资料,网上千篇一律,总结了两点: 1,如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了),直接在查询语句后面 添加 order by name asc; 查询结果按照姓氏的升序排序; 2,如果存储姓名的字段采用的是 utf8字符集,需要在排序的时候对字段进行转码;对于的代码是 order by convert(name using gbk) asc; 同样,查询的结果也是按照姓氏的升序排序; 我相信大多数人用的应该是用的utf8字符集,所以这里就使用第二种方法 但是在TP中,如果使用不当,就会报错 正确的写法应该使用这篇文章 《文章名字》 中的方法,TP中的一个类,超级简单超级好用。 //实例化这个类

sort与sorted

放肆的年华 提交于 2019-12-02 15:01:17
sort list.sort(cmp=None, key=None, reverse=False) sorted aaa=sorted(iterable,cmp=None, key=None, reverse=False) >>reverse=False时为正向排序,reverse=True时为反向排序。默认为False。 >>list.sort()方法仅仅被list所定义,sorted()可用于任何一个可迭代对象。 >>list.sort()会改变原来的list,如果不需要原来的list,这种效率稍微高点;sorted()不会改变原来的iterable,而是会返回一个新的排序好的iterable。 示例: a = [3,2,6,7,1] a.sort() print a b = [3,2,6,7,1] print sorted(b,reverse=True) print b 输出: [1, 2, 3, 6, 7] [7, 6, 3, 2, 1] [3, 2, 6, 7, 1] 多写几行代码,按顺序逐个比较排序,更能体会sort与sorted一键排序的便利。 a = [3,2,6,7,1] for i in range(0, len(a)): for j in range(0, i): if a[i]<=a[j]: k=a[i] a[i]=a[j] a[j]=k print a

排序题目之两个数组的交集

允我心安 提交于 2019-12-02 12:59:40
题目:给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2] 示例 2: 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4] 说明: 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。 首先说一下我自己的(菜鸡)思路:我先是想先去重第第一个数组(nums1),然后循环判断值是否在nums2中,有的话,添加新的列表中。 代码实现如下例1: 1 class Solution: 2 def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]: 3 num1 = set(nums1) 4 num = [i for i in num1 if i in nums2] 5 return num 还有一种类似的方法例2: 1 class Solution: 2 def set_intersection(self, set1, set2): 3 return [x for x in set1 if x in set2] 4 5 def intersection(self, nums1, nums2): 6 """ 7 :type nums1: List[int] 8

JavaSE_08_Collections常用功能

只愿长相守 提交于 2019-12-02 12:21:29
1.1 常用功能 java.utils.Collections 是集合工具类,用来对集合进行操作。部分方法如下: public static <T> boolean addAll(Collection<T> c, T... elements) :往集合中添加一些元素。 public static void shuffle(List<?> list) 打乱顺序 :打乱集合顺序。 public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。 public static <T> void sort(List<T> list,Comparator<? super T> ) :将集合中元素按照指定规则排序。 public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); //添加多个元素 Collections.addAll(list,"a","c","b","d"); System.out.println(list); //打乱集合中元素的顺序 Collections.shuffle(list); System.out.println(list); //sort 将集合中的元素按照默认的顺序排序