我有以下类型的散列图
HashMap<String,List<Training>> map=new HashMap<String,List<Training>>();
Input:
topicName startDate endDate Trainer Venue
css 01-10-2017 11-11-2017 ccc hyd
html 01-10-2017 12-11-2017 www viz
python 10-10-2017 12-11-2017 www viz
输入日期:01-10-2017
要显示的属性/值如下所示:
Output:
topicName startDate endDate Trainer Venue
css 01-10-2017 11-11-2017 ccc hyd
html 01-10-2017 12-11-2017 www viz
我需要从getList()中检索列表的详细信息。我需要在此方法中编写什么代码,以便当用户输入日期时,我可以按照上面所示的方式显示输出。
public List<Training> getList(String fromDate) {
}
public static void main(String args[]) throws ParseException{
Map<String,List<Training>> map = new HashMap<String,List<Training>>();
Scanner sc = new Scanner(System.in);
System.out.println("Give me a size ");
int n = sc.nextInt();
for (int i = 0; i < n; i++){
String topicName = sc.next();
//DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
//Date fromDate = dateFormat.parse(sc.next());
//Date toDate = dateFormat.parse(sc.next());
String fromDate = sc.next();
String toDate = sc.next();
System.out.println("fromDate********"+fromDate);
String trainer = sc.next();
String venue = sc.next();
List<Training> l1=new ArrayList<Training>();
l1.add(new Training(topicName,fromDate,toDate,trainer,venue));
//System.out.println("list********"+l1);
if(!map.containsKey(fromDate)){
map.put(fromDate,l1);
}else{
map.get(fromDate).add(new Training(topicName,fromDate,toDate,trainer,venue));
}
}
System.out.println("map********"+map);
}
@Override
public String toString() {
return gettopicName() + getfromDate() + gettoDate() + gettrainer() + getvenue() ;
}
答案 0 :(得分:0)
因为,fromDate
是您Map
的关键。然后,您只需get
方法即可获得List<Training>
。
return map.get(fromDate);
如果指定密钥没有值,则返回null
。
答案 1 :(得分:0)
尝试以下代码,而不是根据日期创建地图保留培训列表。如果用户输入日期迭代训练以过滤它。
public List<Training> getList(List<Training> trainingList, Date date) {
List<Training> list = new ArrayList<Training>();
for( Training training : trainingList ) {
if( training.getFromDate().getTime() <= date.getTime() &&
date.getTime() <= training.getToDate().getTime() ) {
list.add(training);
}
}
return list;
}
public static void main(String args[]) throws ParseException{
Scanner sc = new Scanner(System.in);
List<Training> l1=new ArrayList<Training>();
System.out.println("Give me a size ");
int n = sc.nextInt();
for (int i = 0; i < n; i++){
String topicName = sc.next();
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
Date fromDate = dateFormat.parse(sc.next());
Date toDate = dateFormat.parse(sc.next());
System.out.println("fromDate********"+fromDate);
String trainer = sc.next();
String venue = sc.next();
l1.add(new Training(topicName,fromDate,toDate,trainer,venue));
}
System.out.println("map********"+l1);
}