2016-12-28 62 views
-2

我有以下程序:如何将简单的程序转换为Java中的HashMap?

public class PopularCharacter { 

    public static void main(String[] args) { 

     PopularCharacter popularCharacter = new PopularCharacter(); 
     char result = popularCharacter.charCounter("azzo"); 
     System.out.println("PopularChar " + result); 
    } 
    public char charCounter(String input) { 
     int maxIndex = 0; 
     int maxValue = 0; 
     int[] value = new int[26]; 

     for (int index = 0; index < input.length(); index++) { 
      value[input.charAt(index) - 97]++; 
     } 

     for (int index = 0; index < value.length; index++) { 
      if (value[index] > maxValue) { 
       maxValue = value[index]; 
       maxIndex = index; 
      } 
     } 

     return (char) (maxIndex + 97); 
    } 
} 

我应该怎么修改与HashMap来实现的代码? 这是我第一次使用HashMap,我很困惑。我问你基地重组的代码。

我想这样做,但我知道是毫无价值:

import java.util.*; 

public class MaxCharHM { 

    public static void main(String[] args) { 
     MaxCharHM popularchar = new MaxCharHM(); 
     char result = popularchar.charCounter("aabbaacdcldkaalkccccc"); 
     System.out.println("Popular char: " + result); 
    } 

    public HashMap <Character, Integer> buildMap (String input){ 

      HashMap value = new HashMap(); 
      for (int i = 0; i < input.length(); i++) { 
       value.put[input.charAt(i) - 97]++; 

     return (char) (something + 97) 

    etc etc 
      } 
    } 
} 

回答

1

您需要先了解什么是地图是什么/如何做到的存储数据。一旦你在那里,你会得到回答你的问题..只需看看Map.put的参数列表(键k,值v)

+0

@hlmAnShU:我应该弄乱整个代码,还是解决方案是关闭第一个程序? –

+0

在上面的代码示例中,您使用了一个索引值为26的列表,并且该索引处的值是一个字符出现的次数。地图将数据从键映射到索引..因此,您将有26个键在你的地图中,每当你在'输入'中找到字符时,你的值就会增加1 ..这样就和列表中的逻辑非常相似...... – hImAnShU

+0

我的介入是由于事实决定是否转换只发生在HashMap或甚至主要的方法中。 我想知道指导方针,而不是锻炼解决方案。 –

相关问题