java8集合排序写法的简单介绍

博主:adminadmin 2023-03-19 05:49:07 409

本篇文章给大家谈谈java8集合排序写法,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java对List去重并排序,如何快速地去掉两个

Java8开始,对数值,集合等提供了Stream流操作,可以方便的对集合进行操作.

比如 筛选,过滤,去重, 映射, 排序,规约,收集 等操作

简单的参考代码如下

import java.util.Arrays;

import java.util.List;

import java.util.stream.Collectors;

// 使用Java8 的Stream特性 和 Java8的Lambda 语句

public class Demo {

public static void main(String[] args) {

// 需求: 集合去重,排序,得到一个新集合里面的元素是之前元素的平方

ListInteger list=Arrays.asList(5,2,2,1,3,4);

ListInteger listResult = list

.stream() // 得到流

.distinct() // 去重 5,2,1,3,4

.sorted() // 自然排序 , 也可以自定义排序规则1,2,3,4,5

.map(x-x*x) // 每个元素求平方1,4,9,16,25

.collect(Collectors.toList()); //收集并返回

System.out.println(listResult);//1,4,9,16,25

}

}

java中如何对数组和集合进行排序

java中对集合排序,可以使用Collections.sort来进行排序,可以对中文、字母、数字进行排序,当比较的是对象时候,让该类实现comparable接口,示例如下:

Collections.sort(dataMap, new ComparatorMapString, Object() { //排序接口实现方法 @Override public int compare(MapString, Object lhs, MapString, Object rhs) { switch (whichsort) { case System_OpenPosition_Sort_Currency: String d2 = ((String) rhs.get(Instrument)); String d1 = (String) lhs.get(Instrument); if (d2 != null d1 != null) { int flag = d1.compareTo(d2); if (flag == 0) { Double d3 = ((Double) rhs.get(OpenPrice)); Double d4 = (Double) lhs.get(OpenPrice); if (d3 != null d4 != null) { int flag2 = d4.compareTo(d3); if (flag2 == 0) { String d5 = ((String) rhs.get(BuySell)); String d6 = (String) lhs.get(BuySell);//文字排序 if (d5 != null d6 != null) { return d6.compareTo(d5);//返回一个int类型,用来判断是否大于、小于还是等于 } } return d4.compareTo(d3); } } else { return flag; } // return d1.compareTo(d2); }

Java的List怎么排序啊?

用Collections.sort就可以排序,

里面的排序是默认的按自然顺序排列

也就是1,2,3,4这种

参数要求实现了Comparable的数据才能排序,

如果你自己写的类,你就要实现Comparable接口,然后在接口里面自动生成的方法里面

指定排序方法,一般的String Inteneger类都是实现了这个接口的 不用自己操作的。

你可以取看源代码

java8中重写treeset集合的comparetor怎么实现

TreeSet是一个有序的集合。

第一:构造、增加、遍历、删除和判断是否包含某个元素同HashSet是一致的。、

第二:证明TreeSet是一个有序的集合。

TreeSet hashSet = new TreeSet();

hashSet.add("a"); //向集合中添加一个字符串

hashSet.add("e");

hashSet.add("b");

hashSet.add("d");

hashSet.add("c");

Iterator it = hashSet.iterator();

while(it.hasNext()){

System.out.println(it.next()+",");

}

输出结果是:

a,

b,

c,

d,

e,

注意:(1)从结果中可以看出元素被排序了,但是这个用默认的排序方法。如何自定义排序呢?可以实现Comparator接口来自定义排序。例如:

import java.util.Comparator;

import ws.wph.android.util.StringUtils;

public class MyCmp implements Comparator {

public int compare(Object element1, Object element2) {

int x = element2.toString().compareTo(element1.toString());

return x;

}

}

然后将该类的对象作为TreeSet构造方法的实参,即TreeSet hashSet = new TreeSet(new

MyCmp());。原理是:向TreeSet增加元素时,自动调用MyCmp类的compare(Object element1, Object

element2)方法,根据方法返回值决定element1和element2的顺序。(此时的输出结果是:e,

d,

c,

b,

a,)

(2)当element1 == element2时返回0,element1 element2 返回正数,element1 element2返回负数。

第三:按照学生成绩排序,当成绩相同时按照学号排序

public int compare(Object element1, Object element2) {

int x=0;

Stuendt s1 = (Stuendt)element1;

Stuendt s2 = (Stuendt)element2;

if(s1.getScore() s2.getScore()){

x=-1;

}else if(s1.getScore() s2.getScore()){

x=1;

}else{

x = s1.getSno().compareTo(s2.getSno());

}

return x;

}

(3)将汉字转换成拼音

public static String getPingYin(String src){

char[] t1 = null;

t1=src.toCharArray();

String[] t2 = new String[t1.length];

HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();

t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);

t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

t3.setVCharType(HanyuPinyinVCharType.WITH_V);

String t4="";

int t0=t1.length;

try {

for (int i=0;it0;i++)

{

//判断是否为汉字字符

if(java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+"))

{

t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);

t4+=t2[0];

}

else

t4+=java.lang.Character.toString(t1[i]).toLowerCase();

}

return t4;

}catch (BadHanyuPinyinOutputFormatCombination e1) {

e1.printStackTrace();

}

return t4;

}

但是需要导入一个包

Java中如何对集合排序

Java内建的排序(冒泡):Java集合有两个实现的工具类,Collections和Arrays。Collections针对集合类型。Arrays针对数组。只需要一个为你排序需要的定制的Comparator或Comparable的实现,将其作为参数传给Collections或Arrays的sort方法就行。

可以自己用程序去实现这个排序。用for从原List里面一个一个拿出来比较然后一个新建的List里面去。

楼主看一下参考资料。

关于java8集合排序写法和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。