关闭

day16集合map里面的(hashtable,hashmap,treemap)的取出方式(keyset和entryset),获取该字符串的字母出现次数

标签: hashtablehashmapjava
50人阅读 评论(0) 收藏 举报
分类:
class MapDemo 
{
public static void main(String[] args) 
{
Map<String,String> map=new HashMap<String,String>();
//
map.put("01","zhangsan");
map.put("02","zhangsan");
map.put("03","zhangsan");

System.out.println("containsKey:"+map.containsKey("022"));
//System.out.println("remove:"+map.remove("02"));

System.out.println("get:"+map.get("02"));

map.put(null,"aha");
System.out.println("get:"+map.get(null));
//可以通过get方法的返回值来判断一个键是否存在。通过返回null判断

//获取map集合中所有的值
Collection<String> coll=map.values();
System.out.println(coll);
System.out.println(map);
}

}

-----------------------------------------------

import java.util.*;

class MapDemo1 
{
public static void main(String[] args) 
{
Map<String,String> map=new HashMap<String,String>();

//
map.put("01","zhangsan2");
map.put("04","zhangsan4");
map.put("02","zhangsan3");
map.put("03","zhangsan4");

//先获取map集合所有键的set集合,keySet()
Set<String> keySet=map.keySet();

//有了set集合,就可以获取迭代器
Iterator<String> it=keySet.iterator();

while (it.hasNext())
{
String key=it.next();
//有了键就可以通过map集合的get方法获取其对应的值。
String value=map.get(key);
System.out.println("key:"+key+",value:"+value);
}
}
}

-----------------------------------------

/*
每个学生都对应的归属地
学生student,地址String.
学生属性:姓名,年龄。
注意:,姓名和年龄相同视为同一个学生
保证学生的唯一性

思路:
1,描述学生
2,定义map集合,将学生作为键值,地址为值。存入
3,获取map集合中的元素。
*/
import java.util.*;
class Student implements Comparable<Student>//实现,两个覆盖方法。
{
private String name;
private int age;
Student(String name,int age)
{
this.name=name;
this.age=age;
}
public int compareTo(Student s)
{
int num=new Integer(this.name).compareTo(new Integer(s.name));
if (num==0)
{
return this.name.compareTo(s.name);
}
return num;
}
public int hashCode()
{
return name.hashCode()+age*34;
}
public boolean equals(Object obj)
{
if (!(obj instanceof Student))
{
throw new ClassCastException("类型不匹配");
}
Student s=(Student)obj;


return this.name.equals(s.name)&&this.age==s.age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
public String toString()
{
return name+":"+age;
}
}

class  MapDemo2
{
public static void main(String[] args) 
{
HashMap<Student,String> hm=new HashMap<Student,String>();
hm.put(new Student("lisi1",21),"beijing");
hm.put(new Student("lisi2",22),"shanghai");
hm.put(new Student("lisi3",23),"nanjing");
hm.put(new Student("lisi4",24),"wuhan");

//第一种取出方式keySet
//先获取map集合所有键的set集合,keySet()
Set<Student> keySet=hm.keySet();

//有了set集合,就可以获取迭代器
Iterator<Student> it=keySet.iterator();

while (it.hasNext())
{
Student stu=it.next();
//有了键就可以通过map集合的get方法获取其对应的值。
String addr=hm.get(stu);
System.out.println("stu:"+stu+",addr:"+addr);
}
//第二种取出方式entrySet
Set<Map.Entry<Student,String>> entrySet=hm.entrySet();

Iterator<Map.Entry<Student,String>> iter=entrySet.iterator();

while (iter.hasNext())
{
Map.Entry<Student,String> me=iter.next();
Student stu=me.getKey();
String addr=me.getValue();
System.out.println("stu:"+stu+"-----,addr:"+addr);
}
}
}

--------------------------------------

/*
sdfgzxcvasdfxcdf获取该字符串的字母出现次数
*/
import java.util.*;

class MapTest 
{
public static void main(String[] args) 
{
String s=CharCount("sdfgzxcvasdfxcdf");
System.out.println(s);
}
public static String CharCount(String str)
{
char[] chs=str.toCharArray();
TreeMap<Character,Integer> tm=new TreeMap<Character,Integer>();

for (int x=0;x<chs.length ;x++ )
{
Integer value=tm.get(chs[x]);
if (value==null)
{
tm.put(chs[x],1);
}
else
{
value=value+1;
tm.put(chs[x],value);
}
}

StringBuilder sb= new StringBuilder();
Set<Map.Entry<Character,Integer>> entrySet=tm.entrySet();
Iterator<Map.Entry<Character,Integer>> it=entrySet.iterator();

while (it.hasNext())
{
Map.Entry<Character,Integer> me=it.next();


Character ch=me.getKey();
Integer value=me.getValue();
sb.append(ch+"("+value+")");
}
return sb.toString();
}
}

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4564次
    • 积分:495
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:47篇
    • 译文:30篇
    • 评论:0条
    文章分类
    文章存档