public <T> List <T>什么意思
时间: 2023-11-14 16:04:05 浏览: 51
这是一个泛型方法的声明,其中 <T> 表示声明一个类型参数 T,这个 T 可以在方法中使用。在这个方法中,返回一个 List<T> 类型的列表。这个方法可以用来返回任何类型的列表,只需在调用时指定 T 的具体类型即可。例如,如果要返回一个整数列表,可以这样调用:List<Integer> list = 方法名();。
相关问题
List<Object>转List<T>
要将 `List<Object>` 转换为 `List<T>`,需要进行强制类型转换,并且需要确保 `List<Object>` 中的所有元素都可以转换为 `T` 类型。可以使用 Java 8 中的流式 API 和 lambda 表达式来实现这个转换过程。
例如,我们可以编写一个通用的方法 `convertList`,它接收一个 `List` 对象和一个类型参数 `Class<T>`,并返回一个 `List<T>` 对象:
```java
public static <T> List<T> convertList(List<Object> list, Class<T> clazz) {
return list.stream()
.map(clazz::cast)
.collect(Collectors.toList());
}
```
在这个方法中,我们使用了 Java 8 中的 `stream()` 函数将 `List<Object>` 转换为流对象,接着使用 `map()` 函数将每个元素进行类型转换,并最终使用 `collect()` 函数将流对象转换为 `List<T>` 对象。
我们可以使用这个方法将一个 `List<Object>` 转换为 `List<String>`,例如:
```java
List<Object> objList = new ArrayList<>();
objList.add("Hello");
objList.add("World");
List<String> strList = convertList(objList, String.class);
System.out.println(strList);
```
输出结果为:
```
[Hello, World]
```
Collection<T> 转List<T> java
要将`Collection<T>`转换为`List<T>`,可以使用`ArrayList`的构造函数或`addAll`方法。以下是两种方法的示例代码:
方法一:使用ArrayList的构造函数
```java
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class Main {
public static void main(String[] args) {
Collection<String> collection = new ArrayList<>();
collection.add("A");
collection.add("B");
collection.add("C");
List<String> list = new ArrayList<>(collection);
System.out.println(list); // 输出 [A, B, C]
}
}
```
在上述示例中,我们通过将`Collection<T>`传递给`ArrayList`的构造函数来创建一个新的`ArrayList`对象,并将其赋值给`List<T>`类型的变量。
方法二:使用addAll方法
```java
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class Main {
public static void main(String[] args) {
Collection<String> collection = new ArrayList<>();
collection.add("A");
collection.add("B");
collection.add("C");
List<String> list = new ArrayList<>();
list.addAll(collection);
System.out.println(list); // 输出 [A, B, C]
}
}
```
在上述示例中,我们创建了一个空的`ArrayList`对象,并使用`addAll`方法将`Collection<T>`中的元素添加到新的列表中。
无论使用哪种方法,最终都会将`Collection<T>`转换为`List<T>`类型的列表。