List<String>转List<long>
时间: 2024-06-14 10:07:31 浏览: 202
以下是两种将List<String>转换为List<Long>的方法:
1. 使用Java 8的Stream API:
```java
List<String> list1 = Arrays.asList("123", "456", "789");
List<Long> list2 = list1.stream().map(Long::parseLong).collect(Collectors.toList());
```
2. 使用Apache Commons Collections库的CollectionUtils类:
```java
List<String> list1 = Arrays.asList("123", "456", "789");
List<Long> list2 = new ArrayList<>();
CollectionUtils.collect(list1, new Transformer() {
@Override
public Object transform(Object o) {
return Long.parseLong(o.toString());
}
}, list2);
```
相关问题
List<String>转List<Long>
要将`List<String>`转换为`List<Long>`,你可以Java 8的流操作和`Long.parseLong()`方法来实现。下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> stringList = new ArrayList<>();
stringList.add("123");
stringList.add("456");
stringList.add("789");
List<Long> longList = stringList.stream()
.map(Long::parseLong)
.collect(Collectors.toList());
System.out.println(longList);
}
}
```
在上面的代码中,我们首先创建了一个`List<String>`对象`stringList`,并向其中添加了一些字符串元素。然后,我们使用流操作的`map()`方法将每个字符串转换为对应的`Long`类型,并使用`collect()`方法将结果收集到一个新的`List<Long>`对象`longList`中。最后,我们打印输出了`longList`。
请注意,上述代码假设输入的字符串都可以成功转换为`Long`类型。如果输入的字符串无法转换为`Long`,则会抛出`NumberFormatException`异常。你可以根据实际情况进行异常处理。
list<string>转list<long>
### 回答1:
可以使用循环遍历list<string>,将每个元素转换为long类型后添加到新的list<long>中。具体代码如下:
```python
list_str = ['123', '456', '789']
list_long = []
for s in list_str:
list_long.append(int(s))
```
其中,list_str是原始的list<string>,list_long是转换后的list<long>。在循环中,使用int()函数将每个字符串转换为long类型,然后添加到list_long中。
### 回答2:
list<string>转list<long>的方法主要是通过遍历list<string>,并将每个字符串转换为long类型,然后将其存储到list<long>中。
具体步骤如下:
1. 遍历list<string>中的每一个元素,使用stol函数将字符串转换为long类型。
2. 转换成功后,将long类型的值存储到一个新的list<long>中。
3. 最终得到的list<long>就是转换后的结果。
需要注意的是,转换过程中可能会出现不合法的字符串导致转换失败,可以通过异常处理来解决。
如果需要在转换时忽略无法转换的字符串,可以使用try-catch语句捕获异常并忽略异常情况。
以下是一个示例代码:
```
list<string> strList = {"123", "456", "789", "abc"};
list<long> longList;
for (auto str : strList) {
try {
longList.push_back(stol(str));
} catch (...) {
continue;
}
}
// 输出转换后的结果
for (auto num : longList) {
cout << num << " ";
}
```
上述代码会输出:123 456 789。由于字符串"abc"无法转换为long类型,因此被忽略掉了。
### 回答3:
题目要求将类型为string的列表list<string>转换成类型为long的列表list<long>。我们可以使用C++11中的std::transform算法来实现这一转换操作。
首先,我们需要定义一个转换函数,它能够将string类型的元素转换成long类型的元素。这个函数可以使用std::stol()函数来实现:
long stringToLong(const std::string& s) {
return std::stol(s);
}
然后,我们需要将这个函数作用于list<string>中的每个元素。这可以通过std::transform算法来实现:
std::list<std::string> stringList = {"1", "2", "3", "4", "5"};
std::list<long> longList;
std::transform(stringList.begin(), stringList.end(), std::back_inserter(longList), stringToLong);
在这里,std::back_inserter(longList)用于在适当的位置插入新的元素,从而保持longList的尺寸与stringList相同。std::transform算法会对stringList中的每个元素都调用stringToLong()函数,并将返回值添加到longList中。
最后,我们可以打印转换后的结果:
for (long l : longList) {
std::cout << l << " ";
}
输出结果应该为:1 2 3 4 5。
总之,将list<string>转换成list<long>可以使用std::transform算法,并提供一个转换函数来将string类型的元素转换成long类型。
阅读全文