将字符串转换为java中的arraylist

如何将不带分隔符的String转换为ArrayList

我的字符串是这样的:

 String str = "abcd..." 

我知道一种方法是首先将String转换为char[] ,然后将char []转换为ArrayList

有没有更好的方法来做到这一点? 喜欢直接转换? 考虑时间和性能,因为我正在使用大型数据库进行编码。

你需要像这样添加它。

 String str = "abcd..."; ArrayList chars = new ArrayList(); for (char c : str.toCharArray()) { chars.add(c); } 

使用lambda表达式来做到这一点。

 String big_data = "big-data"; ArrayList chars = new ArrayList<>( big_data.chars() .mapToObj(e -> (char) e) .collect( Collectors.toList() ) ); 

如果您在创建后不需要修改列表,可能更好的方法是将字符串包装到实现List接口的类中,如下所示:

 import java.util.AbstractList; import java.util.List; public class StringCharacterList extends AbstractList  { private final String string; public StringCharacterList (String string) { this.string = string; } @Override public Character get (int index) { return Character.valueOf (string.charAt (index)); } @Override public int size () { return string.length (); } } 

然后像这样使用这个类:

 List  l = new StringCharacterList ("Hello, World!"); System.out.println (l); 

很抱歉Retrobump,但现在这很容易!

您可以使用Streams在Java 8中轻松完成此操作! 尝试这个:

 String string = "testingString"; List list = string.chars().mapToObj((i) -> Character.valueOf((char)i)).collect(Collectors.toList()); System.out.println(list); 

您需要使用mapToObj因为chars()返回一个IntStream

 public static void main(String[] args) { // TODO Auto-generated method stub String str = "abcd..."; ArrayList a=new ArrayList(); for(int i=0;i 

你可以这样做:

 import java.util.ArrayList; public class YourClass{ public static void main(String [] args){ ArrayList char = new ArrayList(); String str = "abcd..."; for (int x = 0; x < str.length(); x ++){ char.add(str.charAt(x)); } } } 

有单行番石榴解决方案:

 Lists.charactersOf("hello"); 

你可以将生成的ImmutableList传递给ArrayList构造函数,但是我可以问你为什么需要确切的ArrayList?