Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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:如何进入列表<;字符串>;_Java_String_List - Fatal编程技术网

JAVA:如何进入列表<;字符串>;

JAVA:如何进入列表<;字符串>;,java,string,list,Java,String,List,我用很少的值创建类书 private int id; private String title; private String autorName; private String autorSurname; private int date; private List<String> typeBook = Arrays.asList("autobiography", "classic", "comedy", "cookbook", "crime story",

我用很少的值创建类书

private int id;
private String title;
private String autorName;
private String autorSurname;
private int date;
private List<String> typeBook = Arrays.asList("autobiography", "classic", "comedy", "cookbook",
            "crime story", "drama", "encyclopedia", "fantasty", "novel");

我有个问题。如何进入列表,然后选择书的类型???

似乎您对
类型书使用了错误的结构。一本书不能既是百科全书又是小说。它只是一种类型,从一组选择中选择。您需要的是:

根据DaveyDaveDave和Jack Flump的有用评论,您可能希望将一本书分为若干类别。为此,您可以在Book类中存储:

class Book {
    ...
    private EnumSet<BookType> bookTypes;
    ...
}
这样称呼它:

    Book tlotr = new Book(
        12345,
        "The Lord of the Rings",
        "J.R.R.", "Tolkien",
        1954,
        BookType.CLASSIC, BookType.FANTASY, BookType.NOVEL);
如果要避免多次键入
BookType.
,可以在文件顶部添加静态导入语句:

import static my_package.BookType.*;

然后,您可以仅按名称引用枚举常量。这仅在源位于命名包中时有效。此外,如果枚举位于类(如book)内,则
导入静态mypackage.book.BookType.*

似乎您对
打字机使用了错误的结构。一本书不能既是百科全书又是小说。它只是一种类型,从一组选择中选择。您需要的是:

根据DaveyDaveDave和Jack Flump的有用评论,您可能希望将一本书分为若干类别。为此,您可以在Book类中存储:

class Book {
    ...
    private EnumSet<BookType> bookTypes;
    ...
}
这样称呼它:

    Book tlotr = new Book(
        12345,
        "The Lord of the Rings",
        "J.R.R.", "Tolkien",
        1954,
        BookType.CLASSIC, BookType.FANTASY, BookType.NOVEL);
如果要避免多次键入
BookType.
,可以在文件顶部添加静态导入语句:

import static my_package.BookType.*;

然后,您可以仅按名称引用枚举常量。这仅在源位于命名包中时有效。此外,如果枚举位于类(如book)内,则
导入静态mypackage.book.BookType.*

为typeBook创建getter:
列出getTypeBook(){return typeBook;}
。然后使用它:
…book.getTypeBook().get(index)

为typeBook创建getter:
列出getTypeBook(){return typeBook;}
。然后使用它:
…book.getTypeBook().get(index)

私有列表typeBook=array.asList(“自传”、“经典”、“喜剧”、“食谱”、“犯罪故事”、“戏剧”、“百科全书”、“幻想”、“小说”);
公共作废设置打印簿(列表打印簿){
this.typeBook=typeBook;
}
公共列表getTypeBook(){
把这本打字机还给我;
}
公共图书(int-id,String t,String-aName,String-aSurname,int-d,List-tBook){
this.id=id;
this.title=t;
this.autoname=aName;
this.autorname=aSurname;
这个日期=d;
这个.typeBook.addAll(tBook);
}
私人列表typeBook=array.asList(“自传”、“经典”、“喜剧”、“食谱”、“犯罪故事”、“戏剧”、“百科全书”、“幻想”、“小说”);
公共作废设置打印簿(列表打印簿){
this.typeBook=typeBook;
}
公共列表getTypeBook(){
把这本打字机还给我;
}
公共图书(int-id,String t,String-aName,String-aSurname,int-d,List-tBook){
this.id=id;
this.title=t;
this.autoname=aName;
this.autorname=aSurname;
这个日期=d;
这个.typeBook.addAll(tBook);
}

我会看看DodgyCodeException设置图书类型枚举的答案。我还将假设你正在试图得到一个按类型分类的书籍列表,因为你不完全清楚这个问题的意思

如果您试图获取书籍列表,则需要实现一个多值映射。举个例子:

Map<BookType, List<Book>> books = new HashMap<>();
books.computeIfAbsent(BookType.ENCYCLOPEDIA, () -> new ArrayList<Book>()).add(new Book(...));
Map books=newhashmap();
books.computeIfAbsent(BookType.ENCYCLOPEDIA,()->newArrayList()).add(新书(…);
填充此数据结构之后。你可以买到某种类型的书

List<Book> encyclopedias = books.get(BookType.ENCYCLOPEDIA);
List encyclopedias=books.get(BookType.ENCYCLOPEDIA);

我会看看DodgyCodeException设置图书类型枚举的答案。我还将假设你正在试图得到一个按类型分类的书籍列表,因为你不完全清楚这个问题的意思

如果您试图获取书籍列表,则需要实现一个多值映射。举个例子:

Map<BookType, List<Book>> books = new HashMap<>();
books.computeIfAbsent(BookType.ENCYCLOPEDIA, () -> new ArrayList<Book>()).add(new Book(...));
Map books=newhashmap();
books.computeIfAbsent(BookType.ENCYCLOPEDIA,()->newArrayList()).add(新书(…);
填充此数据结构之后。你可以买到某种类型的书

List<Book> encyclopedias = books.get(BookType.ENCYCLOPEDIA);
List encyclopedias=books.get(BookType.ENCYCLOPEDIA);

阅读关于Java getter/setter的文章……澄清一下——您在第一段代码(“自传”、“经典”等)中定义的列表,您是否希望它成为所有可能的图书类型的列表,然后在创建一本新的
图书时
您希望选择一种(或多种?)这些类型中有哪些是那本书的类型?也许你误解了列表,我认为你应该使用
枚举
,我的理解是,你只希望一组值被接受为书的类型?不确定最后一个问题的措辞是否正确。。。关于
MultiValueMap
Map
的提示当我创建图书时,我想设置一种类型的图书。阅读关于Java getter/setter的文章……澄清一下——你在第一个片段(“自传”、“经典”等)中定义的列表,你是否希望它成为所有可能图书类型的列表,然后,当你创建一本新的
书时
你想选择其中一种(或多种?)类型作为该书的类型吗?也许你误解了列表,我认为你应该使用
枚举
,我的理解是,你只希望一组值被接受为该书的类型?不确定最后一个问题的措辞是否正确。。。当我创建一本书时,我想设置一种类型的书。假设这是一个学习语言的项目,如果你想更进一步,给你的导师留下深刻印象,您可以增强enum以包含一些可以组合的图书类型的表示—例如,可能有
小说
幻想
,但可能没有
百科全书
喜剧
,然后提供一种方法来验证组合。T