list排序

2019-05-26 Java学习日记之Set集合

百般思念 提交于 2020-03-21 08:18:48
HashSet存储字符串并遍历: package com.set; import java.util.HashSet; public class Demo1 { /** * Set集合,无索引,不可以重复,无序(存取不一致) */ public static void main(String[] args) { HashSet<String> hs = new HashSet<>(); //创建HashSet对象 boolean b1 = hs.add("a"); boolean b2 = hs.add("a"); //当向set集合中存储重复元素时返回的是false hs.add("b"); hs.add("e"); hs.add("d"); System.out.println(hs); //HashSet的继承体系中有重写toString方法 System.out.println(b1); System.out.println(b2); for (String string : hs) { //只要能用迭代器的,就可以使用增强for循环 System.out.println(string); } } } HashSet存储自定义对象保证元素唯一性: public static void demo2() { HashSet<Person> hs = new HashSet<>(

C++ STL排序问题

心不动则不痛 提交于 2020-03-21 05:33:59
/* stl排序 */ #include <iostream> #include <map> #include <vector> #include <list> #include <algorithm> using namespace std; struct STComp :public binary_function<int, int, bool> { inline bool operator()(int x, int y) { //返回true,表示不用变更位置,从大到小排序 return x > y; } }; struct STPrint :public unary_function<int, bool> { inline void operator()(int x) { cout << x << " " ; } }; void test1() { vector<int> v1 = { 1,2,3,4,5,6,7,8 }; //vector排序 sort(v1.begin(), v1.end(), STComp()); for_each(v1.begin(), v1.end(), STPrint()); } void test2() { std::list<int> alist; alist.push_back(3); alist.push_back(4); alist

排序

房东的猫 提交于 2020-03-20 01:11:04
方法: 1.public static <T> boolean addAll(Collection<T> c, T... elements) :往集合中添加一些元素。 2.public static void shuffle(List<?> list) 打乱顺序 :打乱集合顺序。 3.public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。 4.public static <T> void sort(List<T> list,Comparator<? super T> ) :将集合中元素按照指定规则排序。 代码: 1 import java.util.ArrayList; 2 import java.util.Collections; 3 import java.util.Comparator; 4 import java.util.List; 5 6 public class CollectionsDemo { 7 public static void main(String[] args) { 8 List<Integer> list = new ArrayList<>(); 9 list.add(1); 10 list.add(2); 11 Collections.addAll(list,3,4,5,6,7,8,9)

[C++面试题]之冒泡排序

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-19 17:23:20
1、排序方法 将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。 (1)初始 R[1..n]为无序区。 (2)第一趟扫描 从无序区底部向上依次比较相邻的两个气泡的重量,若发现轻者在下、重者在上,则交换二者的位置。即依次比较(R[n],R[n-1]),(R[n-1],R[n-2]),…,(R[2],R[1]);对于每对气泡(R[j+1],R[j]),若R[j+1].key<R[j].key,则交换R[j+1]和R[j]的内容。 第一趟扫描完毕时,"最轻"的气泡就飘浮到该区间的顶部,即关键字最小的记录被放在最高位置R[1]上。 (3)第二趟扫描 扫描R[2..n]。扫描完毕时,"次轻"的气泡飘浮到R[2]的位置上…… 最后,经过n-1 趟扫描可得到有序区R[1..n] 注意: 第i趟扫描时,R[1..i-1]和R[i..n]分别为当前的有序区和无序区。扫描仍是从无序区底部向上直至该区顶部。扫描完毕时,该区中最轻气泡飘浮到顶部位置R[i]上,结果是R[1..i]变为新的有序区。 2、冒泡排序过程示例 对关键字序列为49 38 65 97 76 13 27 49

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

╄→гoц情女王★ 提交于 2020-03-19 12:55:56
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

List<String>里面内容如何排序

◇◆丶佛笑我妖孽 提交于 2020-03-18 17:27:32
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class ListCompareTest { public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("2003"); list.add("2005"); list.add("2001"); list.add("2007"); System.out.println(list); Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { // 返回相反的compare return o2.compareTo(o1); } }); System.out.println(list); } } 这是网上的方法,但是有bug: List元素是string,里面包含数字,如何排序的问题 设ArrayList<String> list, 里面包含"1aa","2ggg","6aaa",

list排序

梦想的初衷 提交于 2020-03-17 15:14:28
某厂面试归来,发现自己落伍了!>>> public static void main(String[] args) {   List<String> list = new ArrayList<String>();   list.add("beijing");   list.add("shanghai");   list.add("hangzhou");   Collections.sort(list, new Comparator<String>() {       public int compare(String str1, String str2) {       /**       * 升序排的话就是第一个参数.compareTo(第二个参数);       * 降序排的话就是第二个参数.compareTo(第一个参数);       */       // 按首字母升序排       // return str1.compareTo(str2);       // 按第二个字母升序排       char c1 = str1.charAt(1);       char c2 = str2.charAt(1);       return c1 - c2;     }   });   System.out.println(list); } 来源: oschina 链接:

Java中Lambda表达式的使用

ⅰ亾dé卋堺 提交于 2020-03-17 10:30:48
本文转载自:https://www.cnblogs.com/franson-2016/p/5593080.html Lambda表达式的语法 基本语法: (parameters) -> expression 或 (parameters) ->{ statements; } 下面是Java lambda表达式的简单例子: // 1. 不需要参数,返回值为 5 () -> 5 // 2. 接收一个参数(数字类型),返回其2倍的值 x -> 2 * x // 3. 接受2个参数(数字),并返回他们的差值 (x, y) -> x – y // 4. 接收2个int型整数,返回他们的和 (int x, int y) -> x + y // 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void) (String s) -> System.out.print(s) 基本的Lambda例子 现在,我们已经知道什么是lambda表达式,让我们先从一些基本的例子开始。 在本节中,我们将看到lambda表达式如何影响我们编码的方式。 假设有一个玩家List ,程序员可以使用 for 语句 ("for 循环")来遍历,在Java SE 8中可以转换为另一种形式: String[] atp = {"Rafael Nadal", "Novak Djokovic",

jqGrid 各种参数 详解

孤者浪人 提交于 2020-03-17 08:37:53
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" xml:lang="en"

java集合类

天涯浪子 提交于 2020-03-16 20:10:55
Java集合类 1.简介: java集合类包含在java.util包下 集合类存放的是对象的引用,而非对象本身。 集合类型主要分为Set(集),List(列表),Map(映射)。 1.1 java集合类图 从上述类图,自己整理出主要内容是如下: 2.集合详解 2.1 HashSet HashSet是Set接口的一个子类 主要的特点是: 里面不能存放重复元素,元素的插入顺序与输出顺序不一致 采用散列的存储方法,所以没有顺序。 代码实例:HashSetTest package cn.swum; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.Set; public class HashSetTest { public static void main(String[] args) { Set set = new HashSet(); set.add("a"); set.add("b"); set.add("c"); set.add("d"); set.add("f"); //插入重复元素,测试set是否可以存放重复元素 set.add("a"); set.add(null); //插入重复null,看结果是否可以存放两个null