list排序

List排序方法

匿名 (未验证) 提交于 2019-12-02 22:10:10
可用使用Collections.sort(List<T> list)和Collections.sort(List<T> list, Comparator<? super T> c)两个排序方法,实际上这种方法排序都需要比较器。 前一个方法是根据内部比较器排序,即List中的元素必须实现Comparable接口,此接口有个compareTo方法用来比较两个对象的某个属性值。 后一个方法是根据Comparator接口实现类的外部比较器进行排序,Comparator接口有个compare方法用于比较两个对象的某个属性值。 比较结果都是返回int类型,只有3个值,分别是“-1”按升序排、“0”不动、“1”按降序排 Java8后List对象本身有sort()方法进行排序,实际上也是使用上述实现原理,不过它使用java8的拉姆达表达式lambda,代码写起来更简洁。 文章来源: List排序方法

C#语言各个版本特性(二)

匿名 (未验证) 提交于 2019-12-02 22:10:10
二、排序Product 1.按名称对产品进行排序,以特定顺序显示一个列表的最简单方式就是先将列表排序,再遍历并显示其中的项。 C#1.1 使用IComparer对ArrayList进行排序 product类 1 using System.Collections; 2 using System.ComponentModel; 3 4 namespace Chapter01.CSharp1 5 { 6 [Description("Listing 1.01")] 7 public class Product 8 { 9 string name; 10 public string Name 11 { 12 get { return name; } 13 } 14 15 decimal price; 16 public decimal Price 17 { 18 get { return price; } 19 } 20 21 public Product(string name, decimal price) 22 { 23 this.name = name; 24 this.price = price; 25 } 26 27 public static ArrayList GetSampleProducts() 28 { 29 ArrayList list = new ArrayList

C# 中使用Linq和Lambda表达式对List&lt;T&gt;进行排序

匿名 (未验证) 提交于 2019-12-02 22:10:10
C#中List<T>排序的两种方法 List<Student> stu = (List< Student>)Session[" StudentList"]; Linq表达式: //按学号降序 List< Student> stuList = (from s in descending select s).ToList< Student>(); //按学号 升序 List< Student> stuList = (from s in Student>(); 使用Lambda表达式排序: //按学号降序 单字段:List< stuList= stu. OrderByDescending(s=> s.orderid).ToList< Student>(); 多字段:List< stuList= stu. OrderByDescending(s=> new{s. stuNO,s. stuName}).ToList< Student >(); //按学号 升序 单字段:List< stuList= stu. OrderBy(s=> s. stuNO).ToList< Student>(); 多字段:List< stuList= stu. OrderBy(s=> new{s. stuNO,s. stuName}).ToList< Student >(); 多字段主次顺序排序情况,先按no排序

c#-Json-Json字符串字段递归排序

匿名 (未验证) 提交于 2019-12-02 22:09:29
1 private static dynamic GetSorObject (Object obj) 2 { 3 if (obj is JArray) 4 { 5 var list = new List<dynamic> (); 6 foreach (var item in (obj as JArray)) 7 { 8 list.Add (GetSorObject (item)); 9 } 10 return list; 11 } 12 else 13 { 14 var paramDic = JsonConvert.DeserializeObject<Dictionary<string, dynamic>> (JsonConvert.SerializeObject (obj)); 15 var sortedDic = new SortedDictionary<string, dynamic> (); 16 for (int i = 0; i < paramDic.Count; i++) 17 { 18 if (paramDic.ElementAt (i).Value is JArray || paramDic.ElementAt (i).Value is JObject) 19 { 20 sortedDic.Add (paramDic.ElementAt (i).Key,

Java之List和Set

匿名 (未验证) 提交于 2019-12-02 21:53:52
初次学习,涉及到List集合,Set集合和数据结构方面的一些知识,有错误还请批评指正 数据存储的常用结构有:栈、队列、数组、链表和红黑树。 ջ 先进后出(FILO). 先进先出(FIFO). 有序的元素序列,以索引访问.查询快,增删慢. 链式结构,查询慢,增删快.通过地址进行连接. 单向链表:结点包括两个内容,一个是存储元素,一个是下一个元素的地址. 双向链表:结点包括3个部分,前一个元素的存储地址,当前结点存储的元素,后一个元素的存储地址 二叉树,查询快.根节点的左边数据小于右边数据. 关于使用java具体实现上面的数据结构以后写,当前只需要了解一下他们的特性就可以. java.util.List 接口继承自Collection 接口,是单列集合的一个重要分支,在List集合中允许出现重复的元素,所有的元素是以一种线 性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和 取出顺序一致。(remove(Object obj)只能移除集合中第一个相同的元素) List集合的特点: 元素存储有序. 可以存储重复元素 有索引,可以通过索引来访问元素 常用的方法有(list的特有方法大都与索引相关): public void add(int index, E element) : 将指定的元素

JAVA8 十大新特性详解

匿名 (未验证) 提交于 2019-12-02 21:53:52
https://blog.csdn.net/cdw8131197/article/details/68553148 https://blog.csdn.net/sun_promise/article/details/51315032 在接口中新增了default方法和static方法,这两种方法可以有方法体 1、static方法 示例代码: public interface DefalutTest { static int a = 5; default void defaultMethod(){ System. out.println( "DefalutTest defalut 方法"); } int sub( int a, int b); static void staticMethod() { System. out.println( "DefalutTest static 方法"); } } 1 2 3 4 5 6 7 8 9 10 11 12 接口里的静态方法,即static修饰的有方法体的方法不会被继承或者实现,但是静态变量会被继承 例如:我们添加一个接口DefalutTest的实现类DefaultTestImpl public class DefaultTestImpl implements DefalutTest{ @Override public int sub(

java list集合排序按某一属性排序

匿名 (未验证) 提交于 2019-12-02 21:53:52
public List<FreightM> sortList (List<FreightM> list){ Collections.sort(list, new Comparator<FreightM>(){ @Override public int compare (FreightM o1, FreightM o2) { if (o1.getType()== 0 ){ return - 1 ; } else { return 1 ; } } }); return list; } 实现compareTo()方法, 返回值为-1,第一个参数排前面;返回值为1,则第二个参数排前面 文章来源: java list集合排序按某一属性排序

java stream sorted排序 考虑null值

匿名 (未验证) 提交于 2019-12-02 21:53:52
项目里使用到排序, java里没有像C# 里的linq,只有stream,查找stream.sorted源码看到有个 Comparator.nullsLast 然后看了一下实现,果然是能够处理null值的排序,如: minPriceList.stream().sorted(Comparator. nullsLast (Comparator. comparing (l -> l.getCreateDate()))); 其中minPriceList是一个对象List,其中getCreateDate是日期字段,有可能为null,需求是对这组list的创建日期进行排序,达到目的。 文章来源: java stream sorted排序 考虑null值

java的Map排序(根据key或者value)

匿名 (未验证) 提交于 2019-12-02 21:53:52
转载来源:https://www.cnblogs.com/ltb6w/p/7862251.html 一.key排序 (T o1,To2) 方法即可实现排序,如下: import java.util.Comparator; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.TreeMap; public class TreeMapTest { public static void main(String[] args) { Map<String, String> map = new TreeMap<String, String>( new Comparator<String>() { public int compare(String obj1, String obj2) { // 降序排序 return obj2.compareTo(obj1); } }); map.put("b", "ccccc"); map.put("d", "aaaaa"); map.put("c", "bbbbb"); map.put("a", "ddddd"); Set<String> keySet = map.keySet(); Iterator<String> iter =

Java实现n级树对象的封装

匿名 (未验证) 提交于 2019-12-02 21:53:52
项目开发中经常会遇到多叉树的展示,最为常见的便是组织机构图以及省市县结构图, 通常做法是接收服务器端返回来的JSON格式的数据,动态生成树形菜单节点。 动态生成树有两种思路: 异步加载节点,适用于节点数量很多的结构,通过zTree等插件封装的方法,传入指定的节点ID查询出当前节点下的子节点信息。 一次性生成全部树节点,适用于小数据量的结构。 今天的笔记记录的是第二种思路的实现方式,共两种 第一种为最常规的做法,将节点以节点编号为Key存入散列表,随后遍历散列表通过Key值与节点的parentId对应关系再构造出多叉树: public class InfiniteLevelTreeUtil { public static List<Node> getInfiniteLevelTree () { // 读取层次数据结果集列表 List<Node> dataList = dao.getNodes(); // 将Node存入散列表 Map<String, Node> nodeMap = dataList.stream().collect(Collectors.toMap(Node::getId, node -> node)); // 根节点 List<Node> root = new ArrayList<>(); // 构造无序的多叉树 for (Map.Entry<String,