java中Map类测试总结
2017-12-23 08:25
246 查看
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
public class MapStu {
/*Map:所有map容器的父接口
*map存储的是键值对;map存储数据,是一对一对存的.(key,value)
*HashMap:底层数组加链表
*1.元素的排列顺序与存储的顺序无关
*2.map中的键是不能重复的;(如果添加了相同键的键值对,以前的值被覆盖)
*3.hashmap的键和值都可以为null,并且null作为键的时候作为唯一的对象来使用
*api:
*1.containsKey(Object key),containsKey(Object value):判断当前map内是否包含指定的键或者值
2.remove(Object key):根据键删除某个指定的键值对
TreeMap:底层红黑树
1.必须对键值对进行排序
2.根据键的排序来决定键值对的顺序
HashTable:线程安全的HashMap
1.键和值都不能为null;
*/
public static void main(String[] args)
{
demo4();
}
//map容器的元素添加
public static void demo(){
Map<String,Student> map = new HashMap<String,Student>();
for (int i = 1; i < 6; i++)
{
//添加元素
map.put("stu"+i,new Student("stu"+i,i+18));
}
System.out.println(map);
//取值
Student stu = map.get("stu1");
System.out.println(stu);
//containsKey(Object key)
System.out.println(map.containsKey("stu2"));
System.out.println(map.containsValue(new Student("stu1",19)));
//remove
map.remove("stu2");
System.out.println(map.containsKey("stu2"));
}
//map的键不能重复
public static void demo2(){
Map<String,Student> map = new HashMap<String,Student>();
Student stu1 = new Student("辛巴",5);
Student stu2 = new Student("刀疤",5);
map.put("狮子",stu1);
map.put("狮子",stu2);
System.out.println(map.get("狮子"));
map.put(null,stu1);
map.put("老虎", null);
map.put(null,null);
System.out.println(map.get("老虎"));
System.out.println(map.get(null));
}
//hashMap的遍历
public static void demo3(){
Map<String,Student> map = new HashMap<String,Student>();
for (int i = 1; i < 6; i++)
{
//添加元素
map.put("stu"+i,new Student("stu"+i,i+18));
}
//entryset
Set<Entry<String,Student>> entry = map.entrySet();
for (Entry<String, Student> entry2 : entry)
{
System.out.println(entry2.getKey()+":"+entry2.getValue());
}
System.out.println("============================================================");
//keySet
Set<String> keySet = map.keySet();
for (String string : keySet)
{
System.out.println(string+":"+map.get(string));
}
System.out.println("==============================================");
//values:只能遍历值
Collection<Student> coll = map.values();
for (Student student : coll)
{
System.out.println(student);
}
}
//treeMap排序
public static void demo4(){
Map<Student,String> map = new TreeMap<Student,String>();
for (int i = 1; i < 6; i++)
{
//添加元素
int age = (int)(Math.random()*(100-20+1))+20;
map.put(new Student("stu"+i,age),"stu"+i);
}
System.out.println(map);
}
}
class Student implements Comparable<Student>{
String name;
int age;
public Student(String name, int age)
{
super();
this.name = name;
this.age = age;
}
@Override
public String toString()
{
return "Student [name=" + name + ", age=" + age + "]";
}
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (a
8f46
ge != other.age)
return false;
if (name == null)
{
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
@Override
public int compareTo(Student o)
{
if(this.age<o.age){
return -1;
}else if(this.age>o.age){
return 1;
}
return 0;
}
}
一个不错的java项目:JAVA WEB 项目教程-模仿天猫整站 J2EE版
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
public class MapStu {
/*Map:所有map容器的父接口
*map存储的是键值对;map存储数据,是一对一对存的.(key,value)
*HashMap:底层数组加链表
*1.元素的排列顺序与存储的顺序无关
*2.map中的键是不能重复的;(如果添加了相同键的键值对,以前的值被覆盖)
*3.hashmap的键和值都可以为null,并且null作为键的时候作为唯一的对象来使用
*api:
*1.containsKey(Object key),containsKey(Object value):判断当前map内是否包含指定的键或者值
2.remove(Object key):根据键删除某个指定的键值对
TreeMap:底层红黑树
1.必须对键值对进行排序
2.根据键的排序来决定键值对的顺序
HashTable:线程安全的HashMap
1.键和值都不能为null;
*/
public static void main(String[] args)
{
demo4();
}
//map容器的元素添加
public static void demo(){
Map<String,Student> map = new HashMap<String,Student>();
for (int i = 1; i < 6; i++)
{
//添加元素
map.put("stu"+i,new Student("stu"+i,i+18));
}
System.out.println(map);
//取值
Student stu = map.get("stu1");
System.out.println(stu);
//containsKey(Object key)
System.out.println(map.containsKey("stu2"));
System.out.println(map.containsValue(new Student("stu1",19)));
//remove
map.remove("stu2");
System.out.println(map.containsKey("stu2"));
}
//map的键不能重复
public static void demo2(){
Map<String,Student> map = new HashMap<String,Student>();
Student stu1 = new Student("辛巴",5);
Student stu2 = new Student("刀疤",5);
map.put("狮子",stu1);
map.put("狮子",stu2);
System.out.println(map.get("狮子"));
map.put(null,stu1);
map.put("老虎", null);
map.put(null,null);
System.out.println(map.get("老虎"));
System.out.println(map.get(null));
}
//hashMap的遍历
public static void demo3(){
Map<String,Student> map = new HashMap<String,Student>();
for (int i = 1; i < 6; i++)
{
//添加元素
map.put("stu"+i,new Student("stu"+i,i+18));
}
//entryset
Set<Entry<String,Student>> entry = map.entrySet();
for (Entry<String, Student> entry2 : entry)
{
System.out.println(entry2.getKey()+":"+entry2.getValue());
}
System.out.println("============================================================");
//keySet
Set<String> keySet = map.keySet();
for (String string : keySet)
{
System.out.println(string+":"+map.get(string));
}
System.out.println("==============================================");
//values:只能遍历值
Collection<Student> coll = map.values();
for (Student student : coll)
{
System.out.println(student);
}
}
//treeMap排序
public static void demo4(){
Map<Student,String> map = new TreeMap<Student,String>();
for (int i = 1; i < 6; i++)
{
//添加元素
int age = (int)(Math.random()*(100-20+1))+20;
map.put(new Student("stu"+i,age),"stu"+i);
}
System.out.println(map);
}
}
class Student implements Comparable<Student>{
String name;
int age;
public Student(String name, int age)
{
super();
this.name = name;
this.age = age;
}
@Override
public String toString()
{
return "Student [name=" + name + ", age=" + age + "]";
}
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (a
8f46
ge != other.age)
return false;
if (name == null)
{
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
@Override
public int compareTo(Student o)
{
if(this.age<o.age){
return -1;
}else if(this.age>o.age){
return 1;
}
return 0;
}
}
一个不错的java项目:JAVA WEB 项目教程-模仿天猫整站 J2EE版
相关文章推荐
- java中final关键字测试总结
- Java Process 阻塞测试总结
- java中String类测试总结
- java中if判断条件语句测试代码总结
- java中list类测试总结
- 【Java开发技术之程序测试】Junit4 新功能学习总结
- 基于JAVA语言的selenium测试基础总结
- 接口测试-自动化-Java-总结
- java中数组使用测试总结
- IT人必备:实用项目管理系列订餐系统实例化教学(Java版,10年IT经验总结,涉及测试
- java中StringBuilder类测试总结
- java中set类测试总结
- selenium测试(Java)--学习总结
- java方法测试总结
- java web开发总结(四):apache自带压力测试小工具ab(apache benchmark)
- java中包装类测试总结
- java类型转换代码测试总结
- java块级作用域测试总结
- 【深入Java基础】各个Map类的比较与总结
- java中Date类测试总结