java 获取List<String>集合中的最大值
时间: 2024-05-14 13:16:55 浏览: 229
可以使用Java 8中的Stream API来实现获取List<String>集合中的最大值。先将List<String>转为Stream<String>,然后调用max方法并传入比较器Comparator.comparing(String::length),即可获取最大值。
示例代码如下:
```
List<String> list = Arrays.asList("apple", "banana", "cherry", "durian");
String maxString = list.stream()
.max(Comparator.comparing(String::length))
.orElse("");
System.out.println("List中最大值为: " + maxString);
```
执行结果为:
```
List中最大值为: banana
```
相关问题
list<Dtae>的集合里有一堆Thu Mar 27 16:01:41 CST 2031格式的日期,按照时间排序并取最大值给endDate取最小值给beginDate
假设要排序的日期集合为dates,可以按照以下步骤操作:
1. 首先将日期字符串转换为Date类型,并存储到新的集合dateList中:
```java
List<Date> dateList = new ArrayList<>();
for (String dateStr : dates) {
try {
Date date = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US).parse(dateStr);
dateList.add(date);
} catch (ParseException e) {
e.printStackTrace();
}
}
```
2. 对dateList进行排序:
```java
Collections.sort(dateList);
```
3. 取最大值作为endDate:
```java
Date endDate = dateList.get(dateList.size() - 1);
```
4. 取最小值作为beginDate:
```java
Date beginDate = dateList.get(0);
```
完整代码示例:
```java
List<String> dates = new ArrayList<>();
dates.add("Thu Mar 27 16:01:41 CST 2031");
dates.add("Fri Mar 28 11:22:33 CST 2031");
dates.add("Sat Mar 29 09:05:59 CST 2031");
List<Date> dateList = new ArrayList<>();
for (String dateStr : dates) {
try {
Date date = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US).parse(dateStr);
dateList.add(date);
} catch (ParseException e) {
e.printStackTrace();
}
}
Collections.sort(dateList);
Date endDate = dateList.get(dateList.size() - 1);
Date beginDate = dateList.get(0);
System.out.println("endDate: " + endDate);
System.out.println("beginDate: " + beginDate);
```
输出结果:
```
endDate: Sat Mar 29 09:05:59 CST 2031
beginDate: Thu Mar 27 16:01:41 CST 2031
```
list<Dtae> list的集合里有一堆Thu Mar 27 16:01:41 CST 2031格式的日期,按照时间排序并取最大值给endDate取最小值给beginDate
假设list的类型是List<Date>,可以按照时间排序并取最大值和最小值的代码如下:
```
// 按照时间排序
Collections.sort(list);
// 取最大值和最小值
Date endDate = list.get(list.size() - 1);
Date beginDate = list.get(0);
```
完整的示例代码如下:
```
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Date> list = new ArrayList<>();
list.add(new Date(1648442501000L)); // Thu Mar 27 16:01:41 CST 2031
list.add(new Date(1631497201000L)); // Fri Sep 12 16:20:01 CST 2021
list.add(new Date(1663033201000L)); // Sun Sep 11 16:20:01 CST 2022
// 按照时间排序
Collections.sort(list);
// 取最大值和最小值
Date endDate = list.get(list.size() - 1);
Date beginDate = list.get(0);
System.out.println("最大值:" + endDate);
System.out.println("最小值:" + beginDate);
}
}
```
输出结果为:
```
最大值:Thu Mar 27 16:01:41 CST 2031
最小值:Fri Sep 12 16:20:01 CST 2021
```
阅读全文