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;
}
}
相關推薦
java中Map類測試總結
import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import jav
java中set類測試總結
public class SetStu { /*Set:所有set容器的父介面 *set的特點:元素不能重複(equals和hashCode一起判斷) *HashSet:是依據HashMap來實現的 *1.元素是無序的(元素排放的順序和我們新增元素的先後順序無關) *2.不能儲存重複元素,當
java中list類測試總結
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ListStu { /*Collection:所有線性容器的父介面,list和set都是他的
java中Map類有什麼作用,具體怎麼用呢
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>
Java中Map集合及其子類
Collection集合的特點是每次進行單個物件的儲存,如果現在要進行一對物件的儲存,就只能用Map集合來完成,即Map集合中會一次性儲存兩個物件,且這兩個物件的關係:key = value結構。這種結構的最大特點是可以通過key找到對應的value內容。1.Map介面Map
Java中Math類常用函式總結
Java中比較常用的幾個數學公式的總結: //取整,返回小於目標函式的最大整數,如下將會返回-2 Math.floor(-1.8); //取整,返回發育目標數的最小整數 Math.ceil() //
Java中abstract 類總結
(2)抽象類中可以有零個或多個抽象方法,也可以包含非抽象的方法。 (3)抽象類中可以沒有抽象方法,但是,有抽象方法的類必須是抽象類。 (4)對於抽象方法來說,在抽象類中只指定其方法名及其型別,而不書寫其實現程式碼。 (5)抽象類可以派生子類,在抽象類派生的子類中必須實現抽象類中定義的所有抽象方法。 (6)抽
【Java中Math類常用函式總結】
Java中比較常用的幾個數學公式的總結: //取整,返回小於目標函式的最大整數,如下將會返回-2 Math.floor(-1.8); //取整,返回發育目標數的最小整數 Math.ceil() //四捨五入取整 Math.round() //計算平
java中Map有哪些實現類和使用場景
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修飾,所以,包含抽象方法的類肯定是抽象類; 抽象類&抽象方法的使用: 抽象類無
java中String類型轉換為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
java中clob類型的值處理
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編程中, 裝其他各種各樣的對象(引用類型)的一種東西, 叫容器 (圖書
在java中String類為什麽要設計成final?
tro cli lai 這一 引用 沒有 num 重新 static 大神鏈接:在java中String類為什麽要設計成final? - 程序員 - 知乎 我進行了重新排版,並且更換了其中的一個例子,讓我們更好理解。 String很多實用的特性,比如說“不可變性”,是工
java中Set類接口的用法
集合類型 aaa sys nbsp all spa 元素 equal stub 在Java中使用Set,可以方便地將需要的類型,以集合類型保存在一個變量中.主要應用在顯示列表. Set是一個不包含重復元素的collection。更確切地講,set 不包含滿足 e1.equa
Java中enum的學習總結
順序 nac ans mil 封裝 com size 一周 mod 一、通常的定義常量的方法 public class Sex{ public final static int MALE = 1; public final static int FEMALE