package cn.maplearn.demo
import java.util.HashMap
import java.util.Map
import java.util.Set
public class PracticeDemo {
public static void main(String[] args) {
// 将学生和归属存储到HashMap集合中并取出,同姓名同年龄视为同一个学生
Map<Employee, String> map=new HashMap<Employee, String> ()
map.put(new Employee("张三 ",25), "中国")
// map.put(new Employee("李四 ",13), "乌克兰")
map.put(new Employee("王五 ",5457), "北京")
map.put(new Employee("李四 ",13), "乌克兰")
map.put(new Employee("李四 ",13), "上海")
// map.put(new Employee("李四 ",13), "广州")
map.put(new Employee("赵六",13), "上海")
Set<Employee> keySet=map.keySet()
for (Employee employee : keySet) {
String value=map.get(employee)
System.out.println(employee.getName()+":"+employee.getAge()+"....."+value)
}
}
}
package cn.maplearn.demo;
import java.util.HashMap;
import java.util.Map;
public class PracticeDemo3 {
public static void main(String[] args) {
String cnWeek=getCnWeek(3);
System.out.println(cnWeek);
String enWeek =getEnWeek(cnWeek);
System.out.println(enWeek);
}
public static String getCnWeek(int num) {
if(num<=0 || num>7){
throw new NoWeekException(num+"没有对应的星期");
}
String[] cnWeeks={"","星期一","星期二","星期三","星期四","星期五","星期六","星期天"};
return cnWeeks[num];
}
public static String getEnWeek(String cnWeek) {
Map<String, String> map=new HashMap<String,String>();
map.put("星期一", "Monday");
map.put("星期二", "Tuesday");
map.put("星期三", "Wednesday");
map.put("星期四", "Thursday");
map.put("星期五", "Friday");
map.put("星期六", "Saturday");
map.put("星期天", "Sunday");
return map.get(cnWeek);
}
}
package cn.maplearn.demo;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class practiceDemo4 {
/**
* @param 作业:“dfifdkgkdfkgk”
* 获取字符串中第一个字母出现的次数,要求结果格式:a(2)b(1)d(3)
* 思路:
* 1、获取到字母
* 2、如何获取到字母次数?比较
* 发现字母和次数有对应关系,而且对应关系的一方具备唯一性
* 就想到了Map集合。Map集合就是一张表
*
* 3、使用查表法就可以了。
* 先查第一个字母在表中出现的次数,如果次数不存在,说明是第一次出现,将该字母和1存储到表中
* 以此类推,当要查的次数存在,将次数取出并自增后,再和对应的字母存储到表中,mam表的特点是相同键,值覆盖
* 4、查完每一个字符后,表中存储的就是每一个字幕出现的次数
*/
public static void main(String[] args) {
String string="dfifdkgk--dfk++gk";
String count=getCharCount(string);
System.out.println(count);
}
/**
* @param string
* @return
*/
private static String getCharCount(String string) {
char[] chs=string.toCharArray();
Map<Character, Integer> map=new TreeMap<Character,Integer>();
for (int i = 0; i < chs.length; i++) {
if(!(chs[i]>='a' && chs[i]<='z' || chs[i]>='A'&& chs[i]<='Z'))
continue;
Integer value=map.get(chs[i]);
int count=0;
if(value!=null){
count=value;
}
count++;
map.put(chs[i], 1);
}
return toString(map);
}
private static String toString(Map<Character, Integer> map) {
StringBuilder stringBuilder=new StringBuilder();
Set<Character> keySet=map.keySet();
for (Iterator <Character> iterator = keySet.iterator(); iterator.hasNext();) {
Character key = iterator.next();
Integer value=map.get(key);
stringBuilder.append(key+"("+value+")");
}
return stringBuilder.toString();
}
}