定义Map集合,其中键为图书的类型,自定义类型图书类Book的List集合作为值,添加元素。再获取该Map的值,将每本图书信息进行输出
时间: 2024-04-15 16:31:55 浏览: 58
好的,我可以帮你完成这个任务。以下是使用Java语言定义Map集合、添加元素并输出图书信息的示例代码:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 定义Map集合
Map<String, List<Book>> bookMap = new HashMap<>();
// 创建图书对象
Book book1 = new Book("科幻");
Book book2 = new Book("历史");
Book book3 = new Book("小说");
// 添加元素到Map集合
addBook(bookMap, book1);
addBook(bookMap, book2);
addBook(bookMap, book3);
// 输出图书信息
printBookInfo(bookMap);
}
// 添加图书到Map集合中
public static void addBook(Map<String, List<Book>> map, Book book) {
String type = book.getType();
if (map.containsKey(type)) {
List<Book> books = map.get(type);
books.add(book);
} else {
List<Book> books = new ArrayList<>();
books.add(book);
map.put(type, books);
}
}
// 输出图书信息
public static void printBookInfo(Map<String, List<Book>> map) {
for (String type : map.keySet()) {
System.out.println("图书类型:" + type);
List<Book> books = map.get(type);
for (Book book : books) {
System.out.println("图书信息:" + book.toString());
}
System.out.println();
}
}
}
class Book {
private String type;
public Book(String type) {
this.type = type;
}
public String getType() {
return type;
}
@Override
public String toString() {
return "Book{" +
"type='" + type + '\'' +
'}';
}
}
```
这段代码定义了一个`Book`类表示图书,其中包含了一个`type`属性表示图书类型。然后使用`Map<String, List<Book>>`定义了一个`bookMap`集合,键为图书的类型,值为图书类型对应的`Book`对象的列表。
在`main`方法中,我们创建了三个不同类型的图书对象,并通过`addBook`方法将它们添加到`bookMap`中。最后,我们调用`printBookInfo`方法输出了每本图书的信息。
请注意,这只是一个示例代码,你可以根据自己的需求进行修改和扩展。
阅读全文