java8写一个方法,input是List<T>,output为T。将List<T>中的所有元素输出
时间: 2024-05-12 14:13:32 浏览: 49
以下是一个Java 8的写法,使用了Stream的forEach方法来遍历输出List中的所有元素:
```java
public <T> T printList(List<T> list) {
list.stream().forEach(System.out::println);
return list.get(0);
}
```
这个方法接收一个List<T>类型的参数,输出List中的所有元素,并返回List中的第一个元素。可以根据具体需求修改返回值类型。
相关问题
java8写一个方法,input是List<T>,output为T。将List<T>中全部T输出
以下是一个简单的Java8方法,它将List<T>中的所有元素输出并返回其中的任何一个元素:
```java
public static <T> T printAndReturnFirst(List<T> list) {
list.forEach(System.out::println);
return list.get(0);
}
```
在这个方法中,我们使用了Java8中的Lambda表达式和方法引用来遍历列表中的所有元素并打印它们。然后,我们返回列表中的第一个元素。请注意,此方法假定List<T>不是空的。如果列表为空,则调用list.get(0)将引发IndexOutOfBoundsException异常。
SingleOutputStreamOperator<List<JSONObject>> applyDataStream = dataStreamSource.keyBy(value -> { String[] splitValues = value.getString("key").toString().split(":"); return splitValues[2]; }).window(TumblingProcessingTimeWindows.of(Time.seconds(2))).apply(new WindowFunction<JSONObject, List<JSONObject>, String, TimeWindow>() { @Override public void apply(String key, TimeWindow timeWindow, Iterable<JSONObject> input, Collector<List<JSONObject>> out) throws Exception { List<JSONObject> output = new ArrayList<>(); input.forEach(s -> { // String topicName = ModelUtil.getConfigValue("ods_kafka_all_data_topicName") + "_" + key; //主题名称 String value = s.getString("value"); TranslateJson translateJson = JSON.parseObject(value, TranslateJson.class); if ("read".equals(translateJson.getType()) || "c".equals(translateJson.getType())) {//新增的数据才同步 使用这种写法优化上面代码
您可以使用 Lambda 表达式来优化上面的代码,示例代码如下:
```
SingleOutputStreamOperator<List<JSONObject>> applyDataStream = dataStreamSource
.keyBy(value -> value.getString("key").toString().split(":")[2])
.window(TumblingProcessingTimeWindows.of(Time.seconds(2)))
.apply((String key, TimeWindow timeWindow, Iterable<JSONObject> input, Collector<List<JSONObject>> out) -> {
List<JSONObject> output = new ArrayList<>();
input.forEach(s -> {
String value = s.getString("value");
TranslateJson translateJson = JSON.parseObject(value, TranslateJson.class);
if ("read".equals(translateJson.getType()) || "c".equals(translateJson.getType())) {
// 新增的数据才同步
// String topicName = ModelUtil.getConfigValue("ods_kafka_all_data_topicName") + "_" + key; //主题名称
output.add(s);
}
});
out.collect(output);
});
```
使用 Lambda 表达式可以使代码更加简洁易读,同时也可以提高代码的执行效率。
阅读全文