欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java 常用的转换、排序

程序员文章站 2023-04-04 11:23:28
1 字符串、数组、集合的转换 定义字符串数组 String[] strArr 1.1 字符串数组转集合 1.2 字符串集合转数组 1.3 字符串集合转逗号分隔的字符串 1.4 逗号分隔的字符串转字符串集合 1.5 对象集合转 Map 定义对象 Person 定义对象 Person 的集合 List ......

1 字符串、数组、集合的转换

定义字符串数组 string[] strarr

string[] strarr = {"red", "green", "blue"};

1.1 字符串数组转集合

list<string> list = arrays.aslist(strarr);

1.2 字符串集合转数组

string[] strarrnew = list.toarray(new string[0]);

1.3 字符串集合转逗号分隔的字符串

string str = string.join(",", list);

1.4 逗号分隔的字符串转字符串集合

list<string> list2 = new arraylist<>(arrays.aslist(str.split(",")));

1.5 对象集合转 map<string, integer>

定义对象 person

private static class person {
    private string name;
    private integer age;
}

定义对象 person 的集合 list

list<person> personlist = lists.newarraylist(
    new person("jordan", 38),
    new person("o'neal", 34),
    new person("james", 31),
    new person("kobe", 34),
    new person("trace", 32)
);

对象集合转为 map

map<string, integer> personmap = personlist.stream().collect(collectors.tomap(person::getname, person::getage));

2 list、map 的排序

2.1 list 自然排序

list.sort(comparator.naturalorder());

2.2 list 按 age 倒序

personlist.sort(comparator.comparing(person::getage).reversed());

2.3 map<string, integer> 按 value 倒序

personmap.entryset().stream()
    .sorted(map.entry.comparingbyvalue(comparator.reverseorder()))
    .collect(collectors.tomap(map.entry::getkey, map.entry::getvalue, (o, n) -> o, linkedhashmap::new));