1.题目的理解
输入 用户类型
模拟文件 用户类型
用户类型
模拟文件 用户类型
要求输出
指定的用户类型,输出对应的模拟文件,模拟文件按照字典序排列
2.代码,希望有用
主要是对map的put重写,和get的运用。
import java.util.*;
public class main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
MyHashMap<String> map = new MyHashMap<String>();
String[] arr1=new String[1024];
while (true) {
String str1 = sc.nextLine();
if (str1.equals("NO")||str1.equals("no"))
break;
String str2 = sc.nextLine();
String[] arr= str2.split(" ");//arr[0]用户类型 arr[1]模拟文件
map.put(arr[1], arr[0]);
}
System.out.println("输入模拟文件:");
String str3=sc.nextLine().toString();
boolean contains=map.containsKey(str3);
if(contains){
System.out.print(str3+" "+map.Myget(str3));
}else {
System.out.println("请重新输入");
}
sc.close();
}
}
class MyHashMap<K> extends HashMap<K,String> {
@Override
public String put(K key, String value) {
String newV = value;
if (containsKey(key)) {
String oldV = get(key);
newV = oldV + "," + newV;
}
return super.put(key,newV );
}
public StringBuffer Myget(Object key) {
StringBuffer newV =new StringBuffer();
String oldV ="";
List<String> list=new ArrayList<>();
oldV=super.get(key);
String[] arr=oldV.split(",");
for (int i = 0; i < arr.length; i++) {
list.add(arr[i]);
}
Collections.sort(list);
for(int i=0;i<list.size();i++){
newV.append(list.get(i)).append(" ");
}
return newV;
}
}