现有字符串信息如下,请将字符串中的书名提取为Map集合的键,将作者提取为Map集合的值 并使用三种不同方式,遍历Map集合打印键值对元素内容 "《红楼梦》-曹雪芹,《西游记》-吴承恩,《三国演义》-罗贯中,《水浒传》-施耐庵"
时间: 2024-02-22 20:56:59 浏览: 144
好的,我可以帮你完成这个任务。下面是代码实现,包含三种不同的遍历方式:
```java
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
String str = "《红楼梦》-曹雪芹,《西游记》-吴承恩,《三国演义》-罗贯中,《水浒传》-施耐庵";
// 提取书名和作者,并存储到Map集合中
Map<String, String> bookMap = new HashMap<>();
String[] bookArr = str.split(",");
for (String bookStr : bookArr) {
String[] bookInfo = bookStr.split("-");
bookMap.put(bookInfo[0], bookInfo[1]);
}
// 遍历方式1:使用keySet()方法遍历
System.out.println("遍历方式1:使用keySet()方法遍历");
for (String bookName : bookMap.keySet()) {
String authorName = bookMap.get(bookName);
System.out.println(bookName + " - " + authorName);
}
// 遍历方式2:使用entrySet()方法遍历
System.out.println("遍历方式2:使用entrySet()方法遍历");
for (Map.Entry<String, String> entry : bookMap.entrySet()) {
String bookName = entry.getKey();
String authorName = entry.getValue();
System.out.println(bookName + " - " + authorName);
}
// 遍历方式3:使用Lambda表达式遍历
System.out.println("遍历方式3:使用Lambda表达式遍历");
bookMap.forEach((bookName, authorName) -> {
System.out.println(bookName + " - " + authorName);
});
}
}
```
输出结果:
```
遍历方式1:使用keySet()方法遍历
《红楼梦》 - 曹雪芹
《西游记》 - 吴承恩
《三国演义》 - 罗贯中
《水浒传》 - 施耐庵
遍历方式2:使用entrySet()方法遍历
《红楼梦》 - 曹雪芹
《西游记》 - 吴承恩
《三国演义》 - 罗贯中
《水浒传》 - 施耐庵
遍历方式3:使用Lambda表达式遍历
《红楼梦》 - 曹雪芹
《西游记》 - 吴承恩
《三国演义》 - 罗贯中
《水浒传》 - 施耐庵
```
阅读全文