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()方法来将值划分到不同的桶 ...
随机推荐
- 软件工程 --- Pair Project: Elevator Scheduler [电梯调度算法的实现和测试]
软件工程 --- Pair Project: Elevator Scheduler [电梯调度算法的实现和测试] 说明结对编程的优点和缺点. 结对编程的优点如下: 在独立设计.实现代码的过程中不 ...
- A Tour of Go Map literals
Map literals are like struct literals, but the keys are required. package main import "fmt" ...
- IOS多线程知识总结/队列概念/GCD/主队列/并行队列/全局队列/主队列/串行队列/同步任务/异步任务区别(附代码)
进程:正在进行中的程序被称为进程,负责程序运行的内存分配;每一个进程都有自己独立的虚拟内存空间 线程:线程是进程中一个独立的执行路径(控制单元);一个进程中至少包含一条线程,即主线程 队列 dispa ...
- 射频识别技术漫谈(8)——动物标签【worldsing笔记】
动物标签也是工作在TTF模式的ID(Identification)卡.之所以通常称为动物标签,估计是因为一来和识别人的ID卡相区分,二是因为动物不如人听话,人的ID卡可以做成卡片形状拿在手上,而动物不 ...
- 新建数据库,然后使用SQL语句创建表、存储过程、用户说明
需要在数据库的安全性,用户那里为用户设置一下权限
- 空循环比较 for foreach array_map array_walk
申请一个数组,然后不断的跑空循环,看看执行时间 for循环 foreach (不使用键) foreach(使用键) array_map array_walk 查看效率速度发现很明显 是foreach更 ...
- iOS开发-网络-合理封装请求接口
概述 如今大多App都会与网络打交道,作为开发者,合理的对网络后台请求接口进行封装十分重要.本文要介绍的就是一种常见的采用回调函数(方法)的网络接口封装,也算的是一种构架吧. 这个构架主要的idea是 ...
- eclispe搭建android平台
1.不推荐在线安装android ADT,因为需要FQ.可以在网上下载ADT,然后离线安装. 离线安装方式:help->Install ->点击add然后选择你的安装包(不需要解压),一直 ...
- 补丁安装命令(WUSA)
wusa windows6.1-kb2716513-x64.msu /quiet /norestart msxml4-kb2758694-enu.exe /quiet /norestart 安装.ms ...
- Helpers\Date
Helpers\Date The Date helper is used for calculations with dates. Date::difference($from, $to, $type ...