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); 

解决方案 »

  1.   

    ((Vector)typeList.get(aMovie.getType())).add(aMovie); aMovie.getType():取得aMovie对象的类型
    typeList.get(aMovie.getType()):根据这个类型从typleList取出一个列表,这个列表不知道是什么类型的,因为你的typeList应该是在类里面定义的。
    ((Vector)typeList.get(aMovie.getType())):把这个列表强制转换成Vector
    ((Vector)typeList.get(aMovie.getType())).add(aMovie):把这个aMovie加到 Vector中去。我是菜鸟,请高手解答。
      

  2.   

       ((Vector)typeList.get(aMovie.getType())).add(aMovie); 
    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明白不?
       我也是菜鸟,说的不对的地方,大家批评指正
      

  3.   


    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); 
    }  }