您的位置:

如何将String转换为ArrayList,提高程序效率

一、使用split()方法进行分割

在将一个字符串转换为ArrayList时,我们可以使用String类的split()方法对该字符串进行分割,然后将分割后的各个子字符串逐个添加到ArrayList中。对于小规模的字符串转换,这种方法可以达到较高的效率。

String str = "a,b,c,d";
String[] strArr = str.split(",");
ArrayList<String> list = new ArrayList<>();
for(String s : strArr) {
    list.add(s);
}

使用上述代码可以将字符串"a,b,c,d"转换为ArrayList,其中用逗号","对字符串进行分割。

二、使用正则表达式进行分割

在split()方法中,也可以使用正则表达式对字符串进行更复杂的分割。但是,由于正则表达式的执行效率较低,当字符串较庞大时,采用正则表达式进行分割的效率会大大降低。

String str = "1,2,3;a,b,c;d,e,f";
String[] strArr = str.split(";|,");
ArrayList<String> list = new ArrayList<>();
for(String s : strArr) {
    list.add(s);
}

使用上述代码可以将字符串"1,2,3;a,b,c;d,e,f"按分号";"和逗号","进行分割,然后将分割后的各个子字符串逐个添加到ArrayList中。

三、使用StringTokenizer进行分割

在对字符串进行分割时,除了split()方法外,还可以使用StringTokenizer类进行分割。相较于split()方法,StringTokenizer采用了更原始的操作方式,因而效率更高。

String str = "apple,orange,banana";
StringTokenizer st = new StringTokenizer(str, ",");
ArrayList<String> list = new ArrayList<>();
while (st.hasMoreTokens()) {
    list.add(st.nextToken());
}

使用上述代码可以将字符串"apple,orange,banana"按逗号","进行分割,然后将分割后的各个子字符串逐个添加到ArrayList中。

四、使用Stream进行快速转换

Java 8引入了Stream API,我们可以使用Stream对字符串进行分割,并将分割后的字符串快速转换为ArrayList。

String str = "1,2,3,4,5";
List<String> list = Arrays.stream(str.split(",")).collect(Collectors.toList());

使用上述代码可以将字符串"1,2,3,4,5"按逗号","进行分割,并将分割后的各个子字符串转换为List。