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) ); } } }
HashMap使用的更多相关文章
- HashMap与TreeMap源码分析
1. 引言 在红黑树--算法导论(15)中学习了红黑树的原理.本来打算自己来试着实现一下,然而在看了JDK(1.8.0)TreeMap的源码后恍然发现原来它就是利用红黑树实现的(很惭愧学了Ja ...
- HashMap的工作原理
HashMap的工作原理 HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间 ...
- 计算机程序的思维逻辑 (40) - 剖析HashMap
前面两节介绍了ArrayList和LinkedList,它们的一个共同特点是,查找元素的效率都比较低,都需要逐个进行比较,本节介绍HashMap,它的查找效率则要高的多,HashMap是什么?怎么用? ...
- Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结
2017年的秋招彻底结束了,感觉Java上面的最常见的集合相关的问题就是hash--系列和一些常用并发集合和队列,堆等结合算法一起考察,不完全统计,本人经历:先后百度.唯品会.58同城.新浪微博.趣分 ...
- 学习Redis你必须了解的数据结构——HashMap实现
本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文链接博客园蜗牛 cnblogs.com\tdws . 首先提供一种获取hashCode的方法,是一种比较受欢迎的方式,该方法参照了一位园友的 ...
- HashMap与HashTable的区别
HashMap和HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collection框架的问题不涉及到HashSet和H ...
- JDK1.8 HashMap 源码分析
一.概述 以键值对的形式存储,是基于Map接口的实现,可以接收null的键值,不保证有序(比如插入顺序),存储着Entry(hash, key, value, next)对象. 二.示例 public ...
- HashMap 源码解析
HashMap简介: HashMap在日常的开发中应用的非常之广泛,它是基于Hash表,实现了Map接口,以键值对(key-value)形式进行数据存储,HashMap在数据结构上使用的是数组+链表. ...
- java面试题——HashMap和Hashtable 的区别
一.HashMap 和Hashtable 的区别 我们先看2个类的定义 public class Hashtable extends Dictionary implements Map, Clonea ...
- 再谈HashMap
HashMap是一个高效通用的数据结构,它在每一个Java程序中都随处可见.先来介绍些基础知识.你可能也知 道,HashMap使用key的hashCode()和equals()方法来将值划分到不同的桶 ...
随机推荐
- hdoj 5500 Reorder the Books
Reorder the Books Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Othe ...
- iOS block并发
多核运算 在iOS中concurrency编程的框架就是GCD(Grand Central Dispatch), GCD的使用非常简单.它把任务分派到不同的queue队列来处理.开发者把任务代码装到一 ...
- android 五子棋开发
两天完成基本功能,再对其进行细节bug优化,本小白的思路. 思路: 1.用canvas绘制棋盘:得到手机的分辨率.棋盘大小为19*19.将手机宽屏分为21份,取中间19份为棋盘.上下空白位置为按钮功能 ...
- iOS stretchableImageWithLeftCapWidth 图片放大不变形
转载自:http://www.cnblogs.com/bandy/archive/2012/04/25/2469369.html - (UIImage *)stretchableImageWithLe ...
- 博客转移到lyso.me
博客转移到http://lyso.me :)
- 【转】数据库中的join
转自:http://coolshell.cn/articles/3463.html 对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有 ...
- Ewebeditor最新漏洞及漏洞大全
Ewebeditor最新漏洞及漏洞大全[收集] 来源:转载作者:佚名时间:2009-06-03 00:04:26 下面文章收集转载于网络:) 算是比較全面的ewebeditor编辑器的漏洞收集,如今的 ...
- [Bootstrap] 2. class 'row' & 'col-md-x' & 'col-md-offset-x'
Usually when desgin a web page, we think building the page in grid. Bootstrap can help us to do that ...
- android学习日记04--开发中的通用细节
1.android中的计量单位 px (pixels)(像素):是屏幕的物理像素点,与密度相关,密度大了,单位面积上的px会比较多.通常不推荐使用这个 pt(磅):1/72英寸,也较少用 in(英寸) ...
- C 双向链表
单链表的结点都只有一个指向下一个结点的指针 单链表的数据元素无法直接访问其前驱元素 逆序访问单链表中的元素是极其耗时的操作! len = LinkList_Length(list); for (i=l ...