Java實現(xiàn)字符串轉List的常見方式總結
在Java開發(fā)中,我們經(jīng)常需要將字符串轉換為List類型,以便進行后續(xù)處理。下面介紹幾種常見的字符串轉List的方式,并給出相應的使用教程。
一、使用Arrays.asList()方法
如果你有一個由逗號分隔的字符串,并希望將其拆分為一個List,你可以使用Arrays.asList()配合String.split()方法來實現(xiàn)。
import java.util.Arrays;
import java.util.List;
public class StringToListExample {
public static void main(String[] args) {
String str = "item1,item2,item3";
List<String> list = Arrays.asList(str.split(","));
System.out.println(list); // 輸出: [item1, item2, item3]
}
}
注意:Arrays.asList()返回的List是固定大小的,不支持添加或刪除元素。如果需要可變的List,可以將其轉換為ArrayList。
List<String> mutableList = new ArrayList<>(Arrays.asList(str.split(",")));
二、使用Stream API
Java 8引入了Stream API,可以更方便地對集合進行操作。你可以使用Arrays.stream()或Pattern.compile()與String.splitAsStream()來將字符串轉換為流,然后收集為List。
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class StringToListWithStreamExample {
public static void main(String[] args) {
String str = "item1,item2,item3";
// 使用Arrays.stream()
List<String> list1 = Stream.of(str.split(","))
.collect(Collectors.toList());
System.out.println(list1); // 輸出: [item1, item2, item3]
// 使用Pattern.compile()與splitAsStream()
List<String> list2 = Pattern.compile(",")
.splitAsStream(str)
.collect(Collectors.toList());
System.out.println(list2); // 輸出: [item1, item2, item3]
}
}
三、使用Guava庫
Guava是Google提供的一個Java核心庫,它提供了很多實用的功能,包括字符串到List的轉換。
首先,你需要在項目中添加Guava的依賴:
<!-- Maven依賴 -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>最新版本號</version>
</dependency>然后,你可以使用Guava的Splitter類來分割字符串并轉換為List。
import com.google.common.base.Splitter;
import com.google.common.collect.Lists;
public class StringToListWithGuavaExample {
public static void main(String[] args) {
String str = "item1,item2,item3";
Iterable<String> iterable = Splitter.on(',').trimResults().split(str);
List<String> list = Lists.newArrayList(iterable);
System.out.println(list); // 輸出: [item1, item2, item3]
}
}
四、使用Apache Commons Lang庫
Apache Commons Lang庫也提供了字符串操作的功能,包括將字符串轉換為List。
首先,你需要在項目中添加Apache Commons Lang的依賴:
<!-- Maven依賴 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>最新版本號</version>
</dependency>然后,你可以使用StringUtils類的split()方法結合Arrays.asList()或轉換為ArrayList。
import org.apache.commons.lang3.StringUtils;
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
public class StringToListWithCommonsLangExample {
public static void main(String[] args) {
String str = "item1,item2,item3";
String[] array = StringUtils.split(str, ',');
List<String> list = Arrays.asList(array); // 固定大小的List
// 或者
List<String> mutableList = new ArrayList<>(Arrays.asList(array)); // 可變的List
System.out.
五、方法補充
以下代碼演示了使用阿里巴巴 Fastjson 庫將 JSON 字符串轉換為 Java 對象列表的兩種常用方式。
方式一:通過 JSONObject.parseObject 結合 TypeReference 實現(xiàn)泛型反序列化。首先創(chuàng)建空的 ArrayList 對象,然后調(diào)用 parseObject 方法,傳入 JSON 字符串和 TypeReference<List> 類型引用,即可將 JSON 數(shù)組轉換為指定泛型類型的對象列表。這種方式適用于需要明確指定泛型類型的場景,能夠避免類型擦除問題。
方式二:通過 JSONArray.parseArray 直接進行轉換。該方法更加簡潔,直接傳入 JSON 字符串和目標類的 Class 對象,即可快速將 JSON 數(shù)組轉換為對應類型的列表。這種方式適用于結構簡單、類型明確的場景。
兩種方式均可實現(xiàn) JSON 到 Java 列表的轉換,方式一通過 TypeReference 保留了泛型信息,方式二則更加簡潔直觀,開發(fā)者可根據(jù)實際需求和編碼習慣選擇使用。
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.JSONObject;
String str = "[
{
"id": 5,
"nodeIdArr": "[\"221\",\"222\"]",
"nodeNameArr": "[\"enb_221\",\"2222\"]",
"upperLimitOfTheBusyTimeThreshold": 9,
"lowerLimitOfTheBusyTimeThreshold": 2,
"dateRangeBeginTime": 1701648000000,
"dateRangeEndTime": 1701682200000,
"createTime": 1701676594000,
"updateTime": 1701737385000,
"activeState": "1"
},
{
"id": 6,
"nodeIdArr": "[\"2003\",\"501\",\"10010\"]",
"nodeNameArr": "[\"CityA\",\"501\",\"Vir1\"]",
"upperLimitOfTheBusyTimeThreshold": 9,
"lowerLimitOfTheBusyTimeThreshold": 2,
"dateRangeBeginTime": 1701648000000,
"dateRangeEndTime": 1701682200000,
"createTime": 1701676641000,
"updateTime": 1701737382000,
"activeState": "1"
}]"
List<BusyTimeIndicatorAlarmThreshold> busyTimeIndicatorAlarmThresholdList = new ArrayList<>();
busyTimeIndicatorAlarmThresholdList = JSONObject.parseObject(str, new TypeReference<List<BusyTimeIndicatorAlarmThreshold>>() {});方式一
List busyTimeIndicatorAlarmThresholdList = new ArrayList<>();
busyTimeIndicatorAlarmThresholdList = JSONObject.parseObject(str, new TypeReference<List>() {});方式二
List userList = JSONArray.parseArray(str, User.class);
到此這篇關于Java實現(xiàn)字符串轉List的常見方式總結的文章就介紹到這了,更多相關Java字符串轉List內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
IntelliJ IDEA 常用設置(配置)吐血整理(首次安裝必需)
這篇文章主要介紹了IntelliJ IDEA 常用設置(配置)吐血整理(首次安裝必需),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06
SpringBoot中處理跨域資源的5種實現(xiàn)方法與對比
這篇文章主要為大家詳細介紹了SpringBoot中處理跨域資源的5種實現(xiàn)方法并進行簡單對比,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2026-01-01
SpringBoot如何優(yōu)雅的處理校驗參數(shù)的方法
這篇文章主要介紹了SpringBoot如何優(yōu)雅的處理校驗參數(shù)的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12
SpringSecurity rememberme功能實現(xiàn)過程解析
這篇文章主要介紹了SpringSecurity rememberme功能實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-03-03
SpringLDAP目錄服務之LdapTemplate與LDAP操作方式
本文將深入探討Spring LDAP的核心概念、LdapTemplate的使用方法以及如何執(zhí)行常見的LDAP操作,幫助開發(fā)者有效地將LDAP集成到Spring應用中,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04

