Java 将字符串的ArrayList拆分为另一个字符串的ArrayList,返回类型为列表,而不是void
当给定另一个字符串数组列表时,我的代码应该返回一个单词数组列表 例如: 输入:Java 将字符串的ArrayList拆分为另一个字符串的ArrayList,返回类型为列表,而不是void,java,string,loops,arraylist,return,Java,String,Loops,Arraylist,Return,当给定另一个字符串数组列表时,我的代码应该返回一个单词数组列表 例如: 输入: ["Hello there"] ["Hello","there"] 输出: ["Hello there"] ["Hello","there"] 到目前为止,我已经: public static List<String> stringToListOfWords(List<String> list ) { for(int i = 0; i &l
["Hello there"]
["Hello","there"]
输出:
["Hello there"]
["Hello","there"]
到目前为止,我已经:
public static List<String> stringToListOfWords(List<String> list )
{
for(int i = 0; i <= list.size() - 1; i++)
{
String[] temp = (list.get(i).split("\\s+"));
ArrayList<String> wordList = new ArrayList<String>(Arrays.asList(temp));
}
return(wordList);
}
公共静态列表stringToListOfWords(列表列表)
{
对于(int i=0;i您应该在循环之前创建一个ArrayList
,并将循环中的所有单词添加到其中:
public static List<String> stringToListOfWords(List<String> list )
{
List<String> wordList = new ArrayList<> ();
for(int i = 0; i <= list.size() - 1; i++) {
String[] temp = list.get(i).split("\\s+");
wordList.addAll(Arrays.asList(temp));
}
return wordList;
}
公共静态列表stringToListOfWords(列表列表)
{
List wordList=newarraylist();
对于(int i=0;i您应该在循环之前创建一个ArrayList
,并将循环中的所有单词添加到其中:
public static List<String> stringToListOfWords(List<String> list )
{
List<String> wordList = new ArrayList<> ();
for(int i = 0; i <= list.size() - 1; i++) {
String[] temp = list.get(i).split("\\s+");
wordList.addAll(Arrays.asList(temp));
}
return wordList;
}
公共静态列表stringToListOfWords(列表列表)
{
List wordList=newarraylist();
对于(inti=0;i如果您使用的是Java8,那么可以放弃循环,改用forEach
public static List<String> stringToListOfWords(List<String> list) {
List<String> wordList = new ArrayList<>();
list.forEach(item->{
String[] temp = item.split("\\s+");
wordList.addAll(Arrays.asList(temp));
});
return wordList;
}
公共静态列表stringToListOfWords(列表列表){
List wordList=new ArrayList();
列表。forEach(项目->{
字符串[]temp=item.split(\\s+);
addAll(Arrays.asList(temp));
});
返回词表;
}
或者,如果你想使用流,这里有一个单行程序
public static List<String> stringToListOfWords(List<String> list) {
return list.stream()
.map(word -> word.split("\\s+"))
.flatMap(Arrays::stream)
.collect(Collectors.toList());
}
公共静态列表stringToListOfWords(列表列表){
return list.stream()
.map(word->word.split(\\s+))
.flatMap(数组::流)
.collect(Collectors.toList());
}
如果您使用的是Java 8,则可以放弃循环,改用forEach
public static List<String> stringToListOfWords(List<String> list) {
List<String> wordList = new ArrayList<>();
list.forEach(item->{
String[] temp = item.split("\\s+");
wordList.addAll(Arrays.asList(temp));
});
return wordList;
}
公共静态列表stringToListOfWords(列表列表){
List wordList=new ArrayList();
列表。forEach(项目->{
字符串[]temp=item.split(\\s+);
addAll(Arrays.asList(temp));
});
返回词表;
}
或者,如果你想使用流,这里有一个单行程序
public static List<String> stringToListOfWords(List<String> list) {
return list.stream()
.map(word -> word.split("\\s+"))
.flatMap(Arrays::stream)
.collect(Collectors.toList());
}
公共静态列表stringToListOfWords(列表列表){
return list.stream()
.map(word->word.split(\\s+))
.flatMap(数组::流)
.collect(Collectors.toList());
}
> p>可以考虑使用java 8的流:
public static List<String> stringToListOfWords(List<String> list){
return list.stream()
.flatMap(s -> Arrays.asList(s.split("\\s+")).stream())
.collect(Collectors.toList());
}
公共静态列表stringToListOfWords(列表列表){
return list.stream()
.flatMap(s->Arrays.asList(s.split(\\s+)).stream())
.collect(Collectors.toList());
}
> p>可以考虑使用java 8的流:
public static List<String> stringToListOfWords(List<String> list){
return list.stream()
.flatMap(s -> Arrays.asList(s.split("\\s+")).stream())
.collect(Collectors.toList());
}
公共静态列表stringToListOfWords(列表列表){
return list.stream()
.flatMap(s->Arrays.asList(s.split(\\s+)).stream())
.collect(Collectors.toList());
}
如果ArrayList wordList
是在一些大括号内声明的,并且不是从大括号内返回的,那么它将超出范围尝试读取java中OOP的多态性:-)如果ArrayList wordList
是在一些大括号内声明的,并且不是从大括号内返回的,那么它将超出范围,在java中读取OOP的多态性:-)哇,谢谢你的建议,我认为我的错误比它需要的复杂得多!有没有理由不写I@statefi这两个都是等效的。我同意OP的选择,因为它没有错。@TimBiegeleisen这不是问题,所以我认为没有必要这么做。哇,谢谢你的建议,我认为我的iStoke比它需要的复杂得多!有没有理由不写i@statefi这两个都是等效的。我选择了OP,因为它没有错。@TimBiegeleisen这不是问题,所以我认为没有必要这么做。这并没有多大改变。干得好+1,但建议添加到n来自流中的现有列表?@TimBiegeleisen我不知道它是否推荐,但我已经编辑了我的答案,现在它不应该添加到现有列表中。它确实没有多大变化。很好+1,但建议从流中添加到现有列表中吗?@TimBiegeleisen我不知道它是否推荐,但我已经编辑了我的answer,现在它不应该添加到现有的列表中。您好,您能告诉我为什么您决定使用flatmap,然后流式处理它,而不是像我的答案那样使用常规映射和平面映射吗?@Rab Ass.split(\\s+”)
返回一个字符串[]
我决定把它做成一条流,然后把它变平,把它从一条流变成一条流。但是现在我看到了你的答案。我觉得它更优雅!更容易理解!嗨,你能告诉我为什么你决定使用平面图然后流,而不是像我的答案那样使用普通的地图和平面图吗?@Rab As s.split(“\\s+”)
返回一个字符串[]
我决定将其制作成一个流,然后将其平面化,将其从一个流更改为一个流。但是现在我看到了您的答案。对我来说,它似乎更优雅了!更容易理解!