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()方法来将值划分到不同的桶 ...
随机推荐
- POJ 2749--Building roads(2-SAT)
题意:John有n个牛棚,每个牛棚都住着一些牛,这些牛喜欢串门(drop around, 学到了...),所以John想要建几条路把他们连接起来.他选择的方法是建两个相连中转站,然后每个牛棚连接其中一 ...
- 解决Visual Studio 2013调试时 Web服务框架中出现了无法识别的错误 问题
此问题出现过很多次,点帮助,google, baidu 都没解决,后经过摸索解决,记录下来1.查找80port是否有被占用情况,需要查看skype[这东西不知道为什么为占用80], Reporting ...
- drag and drop
<!DOCTYPE HTML> <html> <head> <script type="text/javascript"> func ...
- hdu 5585 Numbers【大数+同余定理】
Numbers Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- lua string 库
--lua中字符串索引从前往后是1,2,……,从后往前是-1,-2……. --string库中所有的function都不会直接操作字符串,只返回一个结果. ---------------------- ...
- 教你50招提升ASP.NET性能(二):移除不用的视图引擎
(2)Remove unused View Engines 招数2: 移除不用的视图引擎 If you're an ASP.NET MVC developer, you might not know ...
- 【47】请使用traits classes表现类型信息
1.考虑下面的需求,对迭代器移动d个单位.因为不同类型的迭代器,能力不同,有的迭代器(vector,deque内置迭代器)可以一步到位移动到指定位置,有的迭代器(list内置迭代器)必须一步一步移动, ...
- 使用RecyclerView写树形结构的TreeRecyclerView
简单介绍 android是不提供树形控件的,假设须要使用树形控件.我们应该怎么做呢? 先看效果 上图是一个明显的树形结构 实现原理 在逻辑上,它们是包括关系.数据结构上是多叉树,这是毋庸置疑的. 可是 ...
- Fragment的使用简单介绍【Android】
Fragment在实际项目开发中使用的越来越多,如今简介一下 布局文件: <LinearLayout xmlns:android="http://schemas.android.com ...
- Android开发环境中的概念和工具介绍
最近学习Android开发,以前使用C/C++多一些,现在再补点Java知识,不管是哪种语言,都不过是一种工具而已,真的学起来,大同小异,无谓优劣.学习Android编程肯定是要先从环境搭建开始,无论 ...