、分析以下需求并完成代码 现有字符串信息如下请将字符串中的书名提取为Map集合的键将作者提取为Map集合的值 并使用三种不同方式遍历Map集合打印键值对元素内容 《红楼梦》-曹雪芹《西游记》-吴承恩《三国演义》-罗贯中《水浒传》-施耐庵
代码如下:
import java.util.HashMap;
import java.util.Map;
public class StringToMap {
public static void main(String[] args) {
String str = "《红楼梦》-曹雪芹,《西游记》-吴承恩,《三国演义》-罗贯中,《水浒传》-施耐庵";
String[] books = str.split(",");
Map<String, String> map = new HashMap<>();
// 方法一:传统的for循环遍历
for (int i = 0; i < books.length; i++) {
String[] book = books[i].split("-");
map.put(book[0], book[1]);
}
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
// 方法二:使用forEach方法遍历
map.clear();
for (String book : books) {
String[] pair = book.split("-");
map.put(pair[0], pair[1]);
}
map.forEach((key, value) -> System.out.println(key + ":" + value));
// 方法三:使用Stream API遍历
map.clear();
Arrays.stream(books)
.map(b -> b.split("-"))
.forEach(pair -> map.put(pair[0], pair[1]));
map.entrySet().stream()
.forEach(entry -> System.out.println(entry.getKey() + ":" + entry.getValue()));
}
}
输出结果如下:
《红楼梦》:曹雪芹
《西游记》:吴承恩
《三国演义》:罗贯中
《水浒传》:施耐庵
《红楼梦》:曹雪芹
《西游记》:吴承恩
《三国演义》:罗贯中
《水浒传》:施耐庵
《红楼梦》:曹雪芹
《西游记》:吴承恩
《三国演义》:罗贯中
《水浒传》:施耐庵
``
原文地址: https://www.cveoy.top/t/topic/cIQw 著作权归作者所有。请勿转载和采集!