public void addMovie(Movie aMovie) {
movieList.put(aMovie.getTitle(), aMovie);
if (!typeList.containsKey(aMovie.getType()))
typeList.put(aMovie.getType(), new Vector());
((Vector)typeList.get(aMovie.getType())).add(aMovie);
for (int i=0; i<aMovie.getActors().size(); i++) {
String anActor = (String)aMovie.getActors().get(i);
if (!actorList.containsKey(anActor))
actorList.put(anActor, new Vector());
((Vector)actorList.get(anActor)).add(aMovie);
}
请各位高手解释一下这句,要详细的
((Vector)typeList.get(aMovie.getType())).add(aMovie);
movieList.put(aMovie.getTitle(), aMovie);
if (!typeList.containsKey(aMovie.getType()))
typeList.put(aMovie.getType(), new Vector());
((Vector)typeList.get(aMovie.getType())).add(aMovie);
for (int i=0; i<aMovie.getActors().size(); i++) {
String anActor = (String)aMovie.getActors().get(i);
if (!actorList.containsKey(anActor))
actorList.put(anActor, new Vector());
((Vector)actorList.get(anActor)).add(aMovie);
}
请各位高手解释一下这句,要详细的
((Vector)typeList.get(aMovie.getType())).add(aMovie);
typeList.get(aMovie.getType()):根据这个类型从typleList取出一个列表,这个列表不知道是什么类型的,因为你的typeList应该是在类里面定义的。
((Vector)typeList.get(aMovie.getType())):把这个列表强制转换成Vector
((Vector)typeList.get(aMovie.getType())).add(aMovie):把这个aMovie加到 Vector中去。我是菜鸟,请高手解答。
1,根据你的代码来看,你的typeList应该是一个Map,aMove是应该是一个对象的引用
先从最内层aMovie.getType()得到一个值,这个值作为typeList的KEY建
2,然后是typeList.get(aMovie.getType()),得到与aMovie.getType()这个KEY建对应的VALUE值
3,再根据上面的typeList.put(aMovie.getType(), new Vector());可以看到这个value值是Vector()对象,因此((Vector)typeList.get(aMovie.getType()))得到的是一个Vector对象
4,最后调用这个Vector对象的add方法:((Vector)typeList.get(aMovie.getType())).add(aMovie);
不知道这样说LZ明白不?
我也是菜鸟,说的不对的地方,大家批评指正
public void addMovie(Movie aMovie) {
//往存放movie的Map movieList里面放,key是movie的title
movieList.put(aMovie.getTitle(), aMovie);
//如果type的Map typeList里面没有本movie这种type的,就新创建一个Vector,
//把它放入typeList,key是本movie的type
if (!typeList.containsKey(aMovie.getType()))
typeList.put(aMovie.getType(), new Vector());
//根据本movie的type,到typeList里面取出跟本movie相同type的Vector(列表),
//并把本movie放入这个Vector里面
//举例来说:假设当前的typeList里面有2种类型的电影,比如“武打片”,“战斗片”,
//武打片的Vector(列表)里面有《醉拳》和《少林寺》,战斗片的列表里面有《红日》
//现在这部片子也是战斗片《战上海》,那么这句代码的作用就是根据“战斗片”这个key,
//找到战斗片的列表,然后把《战上海》也加进去。
//再比如本片子是“科幻片”《异形》,那么上面的if起作用了,它先创建了一个空的列表,
//类型为“科幻片”,这样到下面这句运行,就往空列表中加了《异形》
((Vector)typeList.get(aMovie.getType())).add(aMovie);
for (int i=0; i <aMovie.getActors().size(); i++) {
String anActor = (String)aMovie.getActors().get(i);
if (!actorList.containsKey(anActor))
actorList.put(anActor, new Vector());
((Vector)actorList.get(anActor)).add(aMovie);
} }