判斷 Map 中是否包含指定的 key 和 value
重寫name的hashcode()和equals()方法
package com.imooc.collection;
import java.util.HashSet;
import java.util.Set;
/**
* 學生類
* @author Monica
*
*/
public class Student {
public String id;
public String name;
public Set<Course> courses;
public Student(String id,String name){
this .id = id;
this.name = name;
this.courses = new HashSet<Course>();//set介面呼叫
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
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 (!(obj instanceof Student))
return false;
Student other = (Student) obj;
if (name == null) {
if (other.name != null )
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
package com.imooc.collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
public class MapTest {
/**
* 用來承裝學生型別物件
* @param args
*/
public Map<String,Student> students;
/**
* 在構造方法中初試化students屬性
* @param args
*/
public MapTest(){
this.students = new HashMap<String,Student>();
}
/**
* 測試新增:輸入學生ID,判斷是否被佔用
* 若未被佔用,則輸入姓名,建立新學生物件,並且新增到students中
* @param args
*/
public void testPut(){
//建立一個Scanner物件,用來獲取輸入的學生ID和姓名
Scanner console = new Scanner(System.in);
int i = 0;
while (i<3){
System.out.println("請輸入學生ID:");
String ID = console.next();
//判斷該ID是否被佔用
Student st = students.get(ID);
if(st==null){
System.out.println("請輸入學生姓名:");
String name = console.next();
//建立新的學生物件
Student newStudent = new Student(ID,name);
//通過呼叫students的put方法,新增ID-學生對映
students.put(ID, newStudent);
System.out.println("成功新增學生:"+students.get(ID).name);
i++;
}else{
System.out.println("該學生ID已被佔用!");
continue;
}
}
}
/**
* 測試Map中是否包含某個Key值或value值
*/
public void testContainsKeyOrValue(){
//提示輸入學生id
System.out.println("請輸入要查詢的學生ID:");
Scanner console = new Scanner(System.in);
String id = console.next();
//在Map中,用containsKey()方法,來判斷是否包含某個Key值
System.out.println("您輸入的學生ID為:"+id+",在學生對映表中是否存在:"+students.containsKey(id));
if(students.containsKey(id))
System.out.println("對應的學生為:"+students.get(id).name);
//提示輸入學生姓名
System.out.println("請輸入要查詢的學生姓名:");
String name = console.next();
//在containsValue()方法,來判斷是否包含某個Value值
if(students.containsValue(new Student(null,name)))
System.out.println("在學生對映表中,確實包含學生:"+name);
else
System.out.println("在學生對映表中不存在該學生!");
}
/**
* 測試Map的keySet方法
* @param args
*/
public void testKeySet(){
//通過keySet方法,返回Map中的所有“鍵”的Set集合
Set<String> keySet = students.keySet();
//取得Map的容量,呼叫set方法
System.out.println("總共有"+keySet.size()+"個學生");
//通過遍歷KeySet物件,取得每一個鍵,在呼叫get方法取得每個鍵對應的value
for(String stuId:keySet){
Student st = students.get(stuId);
if(st!=null)
System.out.println("學生:"+st.name);
}
}
/**
* 測試刪除Map中的對映
* @param args
*/
public void testRemove(){
//獲取從鍵盤輸入的待刪除學生Id字串
Scanner console = new Scanner(System.in);
while(true){
//提示輸入待刪除的學生的ID
System.out.println("請輸入要刪除的學生ID!");
String ID = console.next();
//判斷該ID是否有對應的學生物件
Student st = students.get(ID);
if(st==null){
//提示輸入的ID並不存在
System.out.println("該ID不存在!");
continue;
}else{
students.remove(ID);
System.out.println("成功刪除學生:"+st.name);
break;
}
}
}
/**
* 通過entrySet方法來遍歷Map
* @param args
*/
public void testEntrySet(){
//通過entrySet方法,返回Map中的所有鍵值對
Set<Entry<String,Student>> entrySet = students.entrySet();
for(Entry<String,Student> entry:entrySet){
System.out.println("取得鍵:"+entry.getKey());
System.out.println("對應的值為:"+entry.getValue().name);
}
}
/**
* 利用put方法修改Map中已有對映
* @param args
*/
public void testModify(){
//提示輸入要修改的學生Id
System.out.println("請輸入要修改的學生ID:");
//建立一個Scanner物件,去獲取從鍵盤輸入的學生ID字串
Scanner console = new Scanner(System.in);
while(true){
//取得從鍵盤輸入的學生ID
String stuID = console.next();
//從students中查詢該學生ID對應的學生物件
Student student = students.get(stuID);
if(student == null){
System.out.println("該ID不存在!請重新輸入!");
continue;
}
//提示當前對應的學生物件的姓名
System.out.println("當前該學生ID,所對應的學生為:"+student.name);
//提示輸入新的學生姓名,來修改已有的對映
System.out.println("請輸入新的學生姓名:");
String name = console.next();
Student newStudent = new Student(stuID,name);
students.put(stuID, newStudent);
System.out.println("修改成功!");
break;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MapTest mt = new MapTest();
mt.testPut();
mt.testKeySet();
//mt.testRemove();
//mt.testEntrySet();
//mt.testModify();
//mt.testEntrySet();
mt.testContainsKeyOrValue();
}
}
相關推薦
判斷 Map 中是否包含指定的 key 和 value
重寫name的hashcode()和equals()方法 package com.imooc.collection; import java.util.HashSet; import java.util.Set; /** * 學生類 * @author
PostgreSQL: 如何判斷字串中是否包含指定字元。
今天有開發人員問到: PostgreSQL 中是否有函式可以判斷一個字串中是否包含指定字元,如果包 含則返回 ture ,否則返回 false,例如,如果字串 'abcde' 中包含 'ab' 則返回 true,於是想了想,共總 結以下三種方法,暫且不考慮效能。 一 方法一: 使用
【C#】判斷字串中是否包含指定字串,contains與indexof方法效率問題
1 class Program 2 { 3 private const int N = 10000000; 4 private static Stopwatch watch = new Stopwatch(); 5 static v
判斷字串中是否包含指定字元或特殊字元
Pattern p = Pattern.compile("[@#$%^&*]"); Matcher m = p.matcher(s); boolean match = m.find(); 如果
Map.containsKey方法——判斷Map集合物件中是否包含指定的鍵名
containsKey方法用來判斷Map集合物件中是否包含指定的鍵名。 語法 boolean containsKey(Object key) 返回值:如果Map集合中包含指定的鍵名,則返回true;否則返回false。 引數:key是要查詢的Map集合的鍵名物件。
Map四種獲取key和value值的方法,以及對map中的元素排序(轉)
compareto map.entry 排序 區別 sta hashmap 得到 package log 獲取map的值主要有四種方法,這四種方法又分為兩類,一類是調用map.keySet()方法來獲取key和value的值,另一類則是通過map.entrySet()方法來
mybatis insert的入參為map時,insert語句中獲取key和value的寫法
1. <insert id="submitAudit"> insert into tablename <foreach collection="params.keys" item="key" open="(" close=")" separator=",">
shell-判斷指定檔案中是否包含指定的字串
來自百度 grep "prod" /home/admin/gitrep/otp/otp-webapp-api/src/main/webapp/WEB-INF/web.xml > /dev/n
shell提取指定列並判斷提取結果中是否包含指定字串
判斷第一列是否包含某一個關鍵字,如果與關鍵字相等,則輸出當前行的最後一列內容。 fileType=$( blkid | awk '{if($1=="關鍵字") {print $NF}}') 然後,在判斷filetype中是否包含指定的字串, if echo $fil
c++中map按key和value排序
algo second ios ring out 升序 i++ con pre 1 ``` 2 #include<iostream> 3 #include<algorithm> 4 #include<vector> 5 #in
在JavaScript中獲取Map集合中的key和value值(前提是:既不知道key為什麼值,也不知道value有哪些值)
在JavaScript中獲取Map集合中的key和value值(前提是:既不知道key為什麼值,也不知道value有哪些值) Map<String,List<Document>>
Java中Map獲取key和value
Java Map獲取key和value的方法 List<Map<String,Object>> list =new ArrayList<Map<String,
如何取出Map中的key和value
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * 遍歷: key value * @aut
Java Map按照Key和Value排序【轉】
try lin tor put array ava ble nbsp key package kingtool.sort; import java.util.ArrayList; import java.util.Collections; import java.ut
java中import機制(指定import和import *的區別)
dem single boot 路徑 list http 簡單 至少 package 轉自:https://www.cnblogs.com/dtts/p/4692480.html java中有兩種包的導入機制,總結如下: 單類型導入(single-type-i
Redis INCR和INCRBY對指定key的value進行數字相加
INCRBY key increment 將 key 所儲存的值加上增量 increment 。 如果 key 不存在,那麼 key 的值會先被初始化為 0 ,然後再執行 INCRBY 命令。 如果值包含錯誤的型別,或字串型別的值不能表示為數字,那麼返回一個錯誤。 本操作的值
php 字串中是否包含指定字串的多種方法
編寫程式的時候,經常要處理字串,最基本就是字串的查詢,在php檢測字串中是否包含指定字串可以使用正則,如果你對正則不瞭解,那麼有幾個函式可以為您提供方便。 1. strstr strstr() 函式搜尋一個字串在另一個字串中的第一次出現。 該函式返回字串的其餘部分(從匹配點)。如果未找到所搜
hashMap 中 key和value交換
import java.util.HashMap; import java.util.Hashtable; import java.util.Set; import java.util.Collection; class TestCollection{ public static void ma
ABAP 判斷字串中是否包含非數字
data: lv_str type c. IF cl_abap_matcher=>matches( pattern = '^(-?[1-9]\d*(\.\d*[1-9])?)|(-?0\.\d*[1-9])$' text = lv
JS—使用indexOf()來判斷字串中是否包含某個值
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js判斷陣列中是否包含一個數字</title> <scri