1. 程式人生 > >java中Map類測試總結

java中Map類測試總結

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 (age != 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;
 }
 
}

相關推薦

javaMap測試總結

import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import jav

javaset測試總結

public class SetStu {  /*Set:所有set容器的父介面   *set的特點:元素不能重複(equals和hashCode一起判斷)   *HashSet:是依據HashMap來實現的   *1.元素是無序的(元素排放的順序和我們新增元素的先後順序無關)   *2.不能儲存重複元素,當

javalist測試總結

import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ListStu {  /*Collection:所有線性容器的父介面,list和set都是他的

javaMap有什麼作用,具體怎麼用呢

Map以按鍵/數值對的形式儲存資料,和陣列非常相似,在陣列中存在的索引,它們本身也是物件。         Map的介面         Map---實現Map         Map.Entry--Map的內部類,描述Map中的按鍵/數值對。         Sorted

Java集合set、List和map的遍歷方式

Java中集合類的遍歷方式 Java中集合分為set、List和map。 1.set集合 set集合常用的有兩種遍歷方式: Set<String>  set = new HashSet<String>(); 第一種利用for迴圈: for(S

Java集合的內容總結

package JavaSum; import java.util.LinkedHashMap; import java.util.Scanner; public class TestMap {         private LinkedHashMap<String,TestEmployee>

JavaMap集合及其子

Collection集合的特點是每次進行單個物件的儲存,如果現在要進行一對物件的儲存,就只能用Map集合來完成,即Map集合中會一次性儲存兩個物件,且這兩個物件的關係:key = value結構。這種結構的最大特點是可以通過key找到對應的value內容。1.Map介面Map

JavaMath常用函式總結

Java中比較常用的幾個數學公式的總結: //取整,返回小於目標函式的最大整數,如下將會返回-2 Math.floor(-1.8); //取整,返回發育目標數的最小整數 Math.ceil() //

Javaabstract 總結

 (2)抽象類中可以有零個或多個抽象方法,也可以包含非抽象的方法。 (3)抽象類中可以沒有抽象方法,但是,有抽象方法的類必須是抽象類。 (4)對於抽象方法來說,在抽象類中只指定其方法名及其型別,而不書寫其實現程式碼。 (5)抽象類可以派生子類,在抽象類派生的子類中必須實現抽象類中定義的所有抽象方法。 (6)抽

JavaMath常用函式總結

Java中比較常用的幾個數學公式的總結: //取整,返回小於目標函式的最大整數,如下將會返回-2 Math.floor(-1.8); //取整,返回發育目標數的最小整數 Math.ceil() //四捨五入取整 Math.round() //計算平

javaMap有哪些實現和使用場景

     Java中的map是一個很重要的集合,他是一個介面,下面繼承它實現了多個實現類,這些類各有千秋,各自有個各自的優點和缺點,先上圖。     map的主要特點是鍵值對的形式,一一對應,且一個key只對應1個value。其常用的map實現類主要有HashMap、Hash

Java匿名使用方法總結

匿名內部類也就是沒有名字的內部類 正因為沒有名字,所以匿名內部類只能使用一次,它通常用來簡化程式碼編寫 但使用匿名內部類還有個前提條件:必須繼承一個父類或實現一個介面 例項1:不使用匿名內部類來實現抽象方法 abstract class Person

JAVA抽象和介面總結

區別1:抽象類體現繼承關係,一個類只能単繼承。介面體現實現關係,一個類可以多實現。區別2:抽象類中可以定義非抽象方法和抽象方法,子類繼承後可以直接使用非抽象方法。介面的方法都            是抽象的,必須由子類去實現。介面中的成員都有固定的修飾符。區別3:抽象類有構造

java抽象,介面,多型,匿名內部類總結串講

首先來談抽象類. 1.抽象類定義形式: public(常用許可權為public)abstract class A{ } 包含抽象方法的類,必須用abstract修飾,所以,包含抽象方法的類肯定是抽象類; 抽象類&抽象方法的使用: 抽象類無

javaString型轉換為yyyy-MM-dd的Date

col code edate birt mat led div get sys String birthday ="2017-02-22"; SimpleDateFormat sdf = new SimpleDateFormat(("yyyy-MM-dd")); jav

javaclob型的值處理

string類型 reat 測試 () eat string json pri 類型轉換 1、String類轉換Clob類型 private Clob clobStr; private String Str="測試值"; clobStr = Hibernate.create

Java集合容器初步了解

equals treemap 輸入 strong 字符串數組 通過 system 結構 shm   容器(Collection)     數組是一種容器,集合也是一種容器     java編程中, 裝其他各種各樣的對象(引用類型)的一種東西, 叫容器     (圖書

javaString為什麽要設計成final?

tro cli lai 這一 引用 沒有 num 重新 static 大神鏈接:在java中String類為什麽要設計成final? - 程序員 - 知乎 我進行了重新排版,並且更換了其中的一個例子,讓我們更好理解。 String很多實用的特性,比如說“不可變性”,是工

javaSet接口的用法

集合類型 aaa sys nbsp all spa 元素 equal stub 在Java中使用Set,可以方便地將需要的類型,以集合類型保存在一個變量中.主要應用在顯示列表. Set是一個不包含重復元素的collection。更確切地講,set 不包含滿足 e1.equa

Javaenum的學習總結

順序 nac ans mil 封裝 com size 一周 mod 一、通常的定義常量的方法 public class Sex{ public final static int MALE = 1; public final static int FEMALE