请问Java中有没有一种数据结构的类能实现一一对应的关系?
有n个唯一编号的抽屉,已经m个不同颜色的球,每个抽屉可以放入一或零个球。
举例,1号抽屉放入红色球,2号抽屉放入绿色球。
如果这个时候要将红色球放入3号抽屉,则必须先将其从1号抽屉取出。有没有现成的类可以实现这种对应关系?Java数据结构

解决方案 »

  1.   

    hashmap是不适合的,因其只能实现单向的一一映射。如果将抽屉为key,其中的球为value,则你可以根据抽屉检索到对应球是什么颜色的,但不能反向根据要找的某一颜色的球检索到唯一的抽屉;反之(key和value倒一下)亦然。
    除非建立两个hashmap,但是这样的操作就很繁琐了。
      

  2.   

    google的guava库提供BiMap实现双向映射。
      

  3.   

    Map<A,B> map1 = new ...;
    Map<B,A> map2 = new ...;