List<Integer>怎么获取<>之间的内容
时间: 2023-07-09 08:33:05 浏览: 114
`List<Integer>` 是 Java 中的泛型,`<>` 中的内容指的是泛型的类型参数。你可以使用Java反射获取`List`的泛型类型参数,具体实现如下:
```java
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Integer> list = null;
Type type = list.getClass().getGenericSuperclass();
ParameterizedType paramType = (ParameterizedType) type;
Type[] argTypes = paramType.getActualTypeArguments();
Class<?> argClass = (Class<?>) argTypes[0];
System.out.println(argClass.getSimpleName()); // output: "Integer"
}
}
```
这段代码将输出泛型的类型参数,即 `Integer`。
相关问题
Java 对 List<List<Integer>> 自定义规则排序
要对 `List<List<Integer>>` 进行自定义规则排序,可以使用 `Comparator` 接口来实现。
假设我们要按照列表中第一个元素的大小进行排序,如果第一个元素相同,则按照第二个元素的大小进行排序,以此类推。
可以使用如下代码来实现:
```java
List<List<Integer>> list = new ArrayList<>();
// 假设已经将列表添加到 list 中
// 按照列表中第一个元素的大小进行排序,如果第一个元素相同,则按照第二个元素的大小进行排序,以此类推
Collections.sort(list, new Comparator<List<Integer>>() {
@Override
public int compare(List<Integer> o1, List<Integer> o2) {
for (int i = 0; i < Math.min(o1.size(), o2.size()); i++) {
int cmp = o1.get(i).compareTo(o2.get(i));
if (cmp != 0) {
return cmp;
}
}
return Integer.compare(o1.size(), o2.size());
}
});
```
这段代码使用了匿名内部类来实现 `Comparator` 接口,并重写了 `compare` 方法来定义排序规则。在 `compare` 方法中,首先遍历两个列表中的元素,按照顺序进行比较,如果发现两个元素不相同,则返回它们之间的比较结果。如果遍历完两个列表后,发现它们的长度不同,则返回它们长度之间的比较结果。最终,使用 `Collections.sort()` 方法对列表进行排序。
将list<integer>转成string
可以使用Python中的join()方法将一个整数列表转换为字符串。例如:
```
numbers = [1, 2, 3, 4, 5]
numbers_str = ''.join(str(i) for i in numbers)
print(numbers_str)
```
输出:
```
12345
```
如果希望在数字之间添加分隔符,可以在join()方法中指定。例如:
```
numbers = [1, 2, 3, 4, 5]
delimiter = '-'
numbers_str = delimiter.join(str(i) for i in numbers)
print(numbers_str)
```
输出:
```
1-2-3-4-5
```
阅读全文