用java语言编写一个程序实现用一个字符串表示目前拥有的电影片名,请设计一个生成器类MovieGenerator,可用于将电影片名填充不同类型的容器 类中包含一成员,为电影片名字符串。 请设计方法实现以下指定功能,以实现对电影片名的处理: 1. 一个生成方法next,可以获取下一部电影片名,其中如果已获取完毕所有的电影名,则循环到第一部影片名开始 ,如next(String[] array),next(Collection<String> collection) 2. 一个填充方法fill,可用于生成器类填充不同类型的容器类型,包括ArrayList, LinkedList, HashSet, LinkedHashSet和TreeSet等,具体实现至少包含两种不同类型容器,以及填充一普通字符串数组,如Collection<String> fill(Collection<String> collection)可用于填充collection,也可定义String[] fill((String[] str)用于填充字符类型数组 3. 分别打印每一个容器或数组中的所有内容 比如电影片名的声明如下: static String movie = "战狼,湄公河行动,流浪地球,夏洛特烦恼,我不是药神"; 可以用Array.split(",")方式生成String的数组。 collection.addAll(Arrays.asList(movie.split(",")));//数组转List加到集合中 collection.toArray()可将容器转换成数组
时间: 2023-06-14 20:06:05 浏览: 64
以下是Java实现的MovieGenerator类:
```java
import java.util.*;
public class MovieGenerator {
private static final String movie = "战狼,湄公河行动,流浪地球,夏洛特烦恼,我不是药神";
private static final String[] movieArray = movie.split(",");
private int index;
public MovieGenerator() {
index = 0;
}
public String next() {
String result = movieArray[index];
index = (index + 1) % movieArray.length;
return result;
}
public Collection<String> fill(Collection<String> collection) {
for (String movie : movieArray) {
collection.add(movie);
}
return collection;
}
public String[] fill(String[] array) {
return Arrays.copyOf(movieArray, movieArray.length);
}
public void print(Collection<String> collection) {
for (String movie : collection) {
System.out.print(movie + " ");
}
System.out.println();
}
public void print(String[] array) {
for (String movie : array) {
System.out.print(movie + " ");
}
System.out.println();
}
public static void main(String[] args) {
MovieGenerator generator = new MovieGenerator();
List<String> list = new ArrayList<>();
Set<String> set = new HashSet<>();
generator.fill(list);
generator.fill(set);
generator.print(list);
generator.print(set);
generator.print(generator.fill(new String[movieArray.length]));
}
}
```
使用示例:
```java
MovieGenerator generator = new MovieGenerator();
List<String> list = new ArrayList<>();
Set<String> set = new HashSet<>();
generator.fill(list);
generator.fill(set);
generator.print(list);
generator.print(set);
generator.print(generator.fill(new String[movieArray.length]));
```
输出结果:
```
战狼 湄公河行动 流浪地球 夏洛特烦恼 我不是药神
夏洛特烦恼 流浪地球 湄公河行动 战狼 我不是药神
战狼 湄公河行动 流浪地球 夏洛特烦恼 我不是药神
```