|   |      1 
                                  184
                             
   当然,假设每个项目都有
    | 
|   |      2 
                                  288
                             
   与
   
    java-8
   
   ,您可以在一行中使用
   
    streams
   
   
     简短演示: 
 
   如注释中所述,您可以使用
    
   完整地说,如果函数不是双射的,可以使用二进制运算符。例如,让我们考虑一下
    
    
   这里有一个值的总和;
    现在输出: 希望有帮助!:) | 
|   |      3 
                                  115
                             the right answer is to use Google Collections :  | 
|   |      4 
                                  15
                             
   自Java 8以来
   
    answer by @ZouZou
   
   使用
    由于这是一个非常常见的任务,我们可以将它变成一个静态实用程序。 这样,解决方案就真正变成了一行代码。 
     | 
|   |      5 
                                  13
                             使用Java 8,您可以执行以下操作: 
    | 
|   |      6 
                                  10
                             
   一个
    
    | 
|   |      7 
                                  8
                             | 
|   |      8 
                                  7
                             
   
    爪哇8
   
   使用方法
    
 
   如果我们对
    
    | 
|  |      9 
                                  5
                             
  | 
|   |      10 
                                  4
                             如果没有java-8,您将能够在一行Commons集合和Closure类中执行此操作  | 
|   |      11 
                                  2
                             根据你想要达到的目标,你会想到很多解决方案: 每个列表项都是键和值 
 列表元素可以查找,但不能保证它们是唯一的:使用google MultiMaps 将所有元素的位置作为关键: 
 这真的取决于你想得到什么。 从示例中可以看到,映射是从键到值的映射,而列表只是一系列元素,每个元素都有一个位置。所以它们根本不能自动转换。 | 
|   |      12 
                                  2
                             这里有一个小方法,我写正是为了这个目的。它使用来自Apache Commons的Validate。 请随意使用。  | 
|   |      13 
                                  2
                             
 有关详细信息,请访问: http://codecramp.com/java-8-streams-api-convert-list-map/ | 
|   |      14 
                                  2
                             如前所述,在java-8中,我们有一个由收集器提供的简明解决方案: 
 
   这样,我们就有了多层次的地图,比如:
    | 
|   |      15 
                                  1
                             
   一个Java8示例来转换
    
   代码复制自:
    | 
|   |      16 
                                  0
                             我喜欢康戈夫的回答,但我觉得太复杂了。我觉得这更简单-也许太简单了。如果愿意,可以用泛型标记替换字符串,并使其适用于任何键类型。 像这样使用:  | 
|   |      17 
                                  0
                             
   如果您不使用Java 8并且出于某种原因不想使用显式循环,请尝试
    
    
    输出: 
   这么说吧,a
     | 
|   |      18 
                                  0
                             
  |