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

来源:互联网 发布:淘宝联盟可以自己买吗 编辑:程序博客网 时间:2024/04/27 15:24
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