Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 列表<;对象>;进入CharSequence[]_Java - Fatal编程技术网

Java 列表<;对象>;进入CharSequence[]

Java 列表<;对象>;进入CharSequence[],java,Java,我有一份清单: public List <Book> bookList = new ArrayList <>(); 公共列表bookList=newarraylist(); 可以使用Book对象引用上的.title获取Book对象的标题(这是一个字符序列) 我要做的是声明一个方法,该方法将图书列表作为输入参数,并返回包含图书标签的CharSequence[]。 书单是按顺序排列的,如果可能的话,我想保留这个 编辑:标题也是字符序列。将其用于: 后者在Java7中(使用

我有一份清单:

public List <Book> bookList = new ArrayList <>();
公共列表bookList=newarraylist(); 可以使用Book对象引用上的.title获取Book对象的标题(这是一个字符序列)

我要做的是声明一个方法,该方法将图书列表作为输入参数,并返回包含图书标签的CharSequence[]。 书单是按顺序排列的,如果可能的话,我想保留这个

编辑:标题也是字符序列。

将其用于:

后者在Java7中(使用迭代器):

或旧样式的循环:

CharSequence[] bookTitles = new CharSequence[books.size()];
for (int i = 0; i < bookTitles.length; i++) {
    bookTitles[i] = books.get(i).title;
}
return bookTitles;
CharSequence[]bookstitles=新的CharSequence[books.size()];
对于(int i=0;i
将其用于:

后者在Java7中(使用迭代器):

或旧样式的循环:

CharSequence[] bookTitles = new CharSequence[books.size()];
for (int i = 0; i < bookTitles.length; i++) {
    bookTitles[i] = books.get(i).title;
}
return bookTitles;
CharSequence[]bookstitles=新的CharSequence[books.size()];
对于(int i=0;i
试试:

或者,就像steffen在回答中所做的那样,在最后使用数组收集器。一般来说,我建议使用
List
s而不是数组。

试试:


或者,就像steffen在回答中所做的那样,在最后使用数组收集器。一般来说,我建议使用
列表
而不是数组。

如果您有
书籍
对象的列表,您可以使用Java 8的
对元素进行流式处理,
将每个元素映射到相应的标题,并
将其收集到数组,例如:

List<Book> books = new ArrayList<>();
CharSequence[] names = books.stream()
    .map(b -> (CharSequence)b.title)
    .toArray(CharSequence[]::new);
List books=new ArrayList();
CharSequence[]name=books.stream()
.地图(b->(字符序列)b.标题)
.toArray(字符序列[]::新建);

如果您有一个
书籍
对象列表,您可以使用Java 8的
对元素进行流式处理,
将每个元素映射到相应的标题,并
将其收集到数组中,例如:

List<Book> books = new ArrayList<>();
CharSequence[] names = books.stream()
    .map(b -> (CharSequence)b.title)
    .toArray(CharSequence[]::new);
List books=new ArrayList();
CharSequence[]name=books.stream()
.地图(b->(字符序列)b.标题)
.toArray(字符序列[]::新建);


你尝试了什么吗?你的尝试在哪里<代码>字符串
实现了
字符序列
。需求列表不是问题。此外,尚不清楚字符序列的结构应该是什么。你应该尽你最大的能力编写一个符合你要求的程序,然后你可以询问你在程序中遇到的困难。我试过写一些方法,但它出了问题。你试过什么了吗?你的尝试在哪里<代码>字符串
实现了
字符序列
。需求列表不是问题。此外,尚不清楚字符序列的结构应该是什么。你应该尽你最大的能力编写一个满足你要求的程序,然后你可以询问你在程序中遇到的困难。我尝试过编写一些方法,但它出错了。
String::valueOf
可能包括标题以外的其他数据,具体取决于
书的内容。toString
does@f1sh对他一直在更改问题。问题的第一个版本已经声明“您可以使用Book object引用上的.title获取Book object的标题(这是一个字符串)。”我讨厌StackOverflow。三个答案都是正确的,但没有人能胜过另一个答案,因为这会扼杀自己的答案(而每个答案都认为是最聪明的答案)。是的,就是这样。接受我的向上投票作为和平协议。
String::valueOf
可能包括标题以外的其他数据,具体取决于
Book.toString
does@f1sh是的,他一直在更改问题。问题的第一个版本已经声明“您可以获取图书对象的标题(是字符串)使用图书对象参考上的.title,“我讨厌堆栈溢出。三个答案都是正确的,但没有人能胜过另一个答案,因为这会扼杀自己的答案(而每个答案都认为是最聪明的答案)。是的,就是这样。接受我的投票作为和平协议。
bookList.stream().map(b -> ((CharSequence)b.title)).collect(Collectors.toList()).toArray();
List<Book> books = new ArrayList<>();
CharSequence[] names = books.stream()
    .map(b -> (CharSequence)b.title)
    .toArray(CharSequence[]::new);