HashMap使用

 

 

/*
 * 测试HashMap的应用,判断
 */
import java.util.HashMap;

public class HuaWeiTest {

    private static final Integer ONE = new Integer(1);

    public static void main(String[] args) {
         HashMap<Character, Integer> m=new HashMap<Character, Integer>();
         char c[]={'张','张','王','王','王','赵','刘'};
         for(int i=0;i<c.length;i++){
             Integer freq=(Integer)m.get(c[i]);  //get方法是获取这个position的value;c[i]是position;取值;
             m.put(c[i], freq==null?ONE:new Integer(freq.intValue()+1));
             
         }
         System.out.println("不同姓氏有"+m.size()+"个");
         System.out.println(m);
    }
}

测试结果:

不同姓氏有4个
{张=2, 赵=1, 刘=1, 王=3}

 

华为机试题目:

package huawei7;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

public class Password {
 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  List<String> list = new ArrayList<String>();
  while(sc.hasNext()) {
   list.add(sc.nextLine());
  }
  for(int i=0;i<list.size();i++) {
   String input = list.get(i).trim();
   if(isLegal(input)) {
    System.out.println("OK");
   }
   else {
    System.out.println("NG"); 
   }
  }
  
  sc.close();
 }
 
 static boolean isLegal(String input) {
     if(input.length()<=8) {
       return false;
     }
  
  HashMap<String, Integer> hash = new HashMap<String, Integer>();
    
  for(int i=0;i<input.length();i++) {
      char ch = input.charAt(i);
      if(ch>='0' && ch<='9') {
          hash.put("num", 1);
      }
      else if(ch>='a' && ch<='z') {
          hash.put("upCase", 1);
      }
      else if(ch>='A' && ch<='Z') {
          hash.put("lowCase", 1);
      }
      else if((ch>=0x21 && ch<=0x2F) || (ch>=0x3A && ch<=0x40)
              ||(ch>=0x5B && ch<=0x60) ||(ch>=0x7B && ch<=0x7E)) {
          hash.put("symbol", 1);
      }
  }
  Iterator<Integer> ite = hash.values().iterator();
  int count =0;
  while(ite.hasNext()) {
   count+=ite.next();
  }
  if(count<3) {
   return false;
  }
  
  for(int i=0;i<input.length();i++) {
   for(int j=3;j<= input.length();j++)
   if(j+i<input.length()) {
    String str =input.substring(i,i+j);
    String left = input.substring(i+j);
    if(left.contains(str)) {
     return false;
    }
   }
  }  
  return true;
 }
}

 华为漂亮度

package huawei4;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Scanner;

public class Beautiful {
    private static final Integer ONE = new Integer(1);

    public static void main(String[] args){
        System.out.println("请输入样例:");
        Scanner scStr=new Scanner(System.in);
        String in=scStr.nextLine();
        String str[]=in.split(" "); //存起来,空格分割;
        HashMap<String, Integer> hash=new HashMap<String, Integer>();
        int count=str.length-1;   //因为空格数为2的时候,时间字符串长度为3,而那个字符串也是两个
        //ArrayList<String> list=new ArrayList<String>();
        StringBuffer string1=new StringBuffer();
        for(int i=0;i<count;i++){ //d对两个字符串进行遍历            
            string1.append(str[i+1]);                    
        }
        System.out.println(string1);
        char ch[]=new char[20];  //开辟一个空间的字符数组
        for(int j=0;j<string1.length();j++){ 
            ch[j]=string1.charAt(j);
            }
        for(int k=0;k<ch.length;k++){         
            Integer freq=(Integer)hash.get(ch[k]);
            hash.put(ch[k],freq==null?ONE:new Integer(freq.intValue()+1) );
            
        }
        
    }

}

 

posted @ 2015-08-08 22:13  好想雨的云  阅读(1085)  评论(0编辑  收藏  举报