day14作業(yè)

一、請簡述Map 的特點(diǎn)约啊。

  • Map每個(gè)元素由鍵與值兩部分組成
  • Map鍵不能重復(fù),每個(gè)鍵對應(yīng)一個(gè)值
  • 鍵和值可以為null

說出Entry鍵值對對象遍歷Map集合的原理。

Map中存放的是兩種對象挺据,一種稱為key(鍵)吉嫩,一種稱為value(值),它們在在Map中是一一對應(yīng)關(guān)系,這一對對象又稱做Map 中的一個(gè)Entry(項(xiàng))顾患。Entry將鍵值對的對應(yīng)關(guān)系封裝成了對象番捂。即鍵值對對象,這樣我們在遍歷Map集合時(shí)江解,就可以從每一個(gè)鍵值對(Entry)對象中獲取對應(yīng)的鍵與對應(yīng)的值设预。

三、請使用Map集合的方法完成添加元素犁河,根據(jù)鍵刪除鳖枕,以及根據(jù)鍵獲取值操作。

public class MapTest01{
public static void main(String[] args) {
// 1.創(chuàng)建HashMap
HashMap<String, String> hm = new HashMap<String, String>();

// 2.使用put添加元素
hm.put("黃曉明", "Baby");
        hm.put("鄧超", "孫儷");
        hm.put("李晨", "范冰冰");
        hm.put("大黑牛", "范冰冰");

// 3.使用put修改元素
String v1 = hm.put("李晨", "白百合");

// 4.使用get獲取元素
String string = hm.get("大黑牛");

// 5.使用remove刪除元素
String v2 = hm.remove("大黑牛");
        System.out.println(v2);

// 6.打印集合中的元素
System.out.println(hm);
    }
}

四桨螺、往一個(gè)Map集合中添加若干元素宾符。獲取Map中的所有value,并使用增強(qiáng)for和迭代器遍歷輸出每個(gè)value灭翔。

public class MapTest02 {
public static void main(String[] args) {
// 1.創(chuàng)建HashMap
HashMap<String, String> hm = new HashMap<String, String>();

// 2.使用put添加元素
hm.put("黃曉明", "Baby");
        hm.put("鄧超", "孫儷");
        hm.put("李晨", "范冰冰");
        hm.put("大黑牛", "范冰冰");

// 3.使用Map的values方法獲取到所有的value
Collection<String> values = hm.values();

// 4.使用增強(qiáng)for獲取每個(gè)value
for (String value : values) {
            System.out.println(value);
        }

        System.out.println("----------------");
// 5.使用迭代器獲取每個(gè)value
Iterator<String> itr = values.iterator();
while (itr.hasNext()) {
            System.out.println(itr.next());
        }
    }
}

五魏烫、請使用Map集合存儲(chǔ)自定義數(shù)據(jù)類型Car做鍵,對應(yīng)的價(jià)格做值肝箱。并使用keySet和entrySet兩種方式遍歷Map集合哄褒。

汽車類:
// 1.定義汽車類.包含名稱和價(jià)格屬性,重寫hashCode和equals方法
public class Car {

private String name;

private String color;

public Car() {
    }

public Car(String name, String color) {
this.name = name;
this.color = color;
    }

public String getName() {
return name;
    }

public void setName(String name) {
this.name = name;
    }

public String getColor() {
return color;
    }

public void setColor(String color) {
this.color = color;
    }

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Car)) return false;

        Car car = (Car) o;

if (name != null ? !name.equals(car.name) : car.name != null) return false;
return color != null ? color.equals(car.color) : car.color == null;
    }

@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
        result = 31 * result + (color != null ? color.hashCode() : 0);
return result;
    }
}
測試類:
public class MapTest03 {
public static void main(String[] args) {
// 2.創(chuàng)建HashMapkey保存汽車對象,value是汽車價(jià)格
HashMap<Car, Integer> hm = new HashMap<>();

// 3.添加汽車到HashMap中
Car c1 = new Car("長安奔奔", "黃色");
        Car c3 = new Car("奇瑞QQ", "黑色");
        Car c2 = new Car("鈴木奧拓", "白色");

        hm.put(c1, 10000);
        hm.put(c2, 20000);
        hm.put(c3, 30000);

// 4.使用keySet方式遍歷Map
Set<Car> keySet = hm.keySet();
for (Car c : keySet) {
// 根據(jù)key獲取value
Integer value = hm.get(c);
            System.out.println(c.getName() + ","+ c.getPrice() + " - "+ value);
        }

        System.out.println("-------------");

// 5.使用entrySet方式遍歷Map
Set<Map.Entry<Car, Integer>> entrySet = hm.entrySet();
for (Map.Entry<Car, Integer> entry : entrySet) {
            Car key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key.getName() + ","+ key.getPrice() + " - "+ value);
        }
    }
}

六、現(xiàn)在有一個(gè)map集合如下:

Map<Integer,String> map = new HashMap<Integer, String>();
        map.put(1, "張三豐");
        map.put(2, "周芷若");
        map.put(3, "汪峰");
        map.put(4, "滅絕師太");

要求:
1.遍歷集合煌张,并將序號(hào)與對應(yīng)人名打印呐赡。
2.向該map集合中插入一個(gè)編碼為5姓名為李曉紅的信息
3.移除該map中的編號(hào)為1的信息
4.將map集合中編號(hào)為2的姓名信息修改為"周林"

public class MapTest04 {
public static void main(String[] args) {
// 1.定義HashMap,編號(hào)作為key,姓名作為value
Map<Integer,String> map = new HashMap<Integer, String>();

// 2.使用put方法添加元素
map.put(1, "張三豐");
        map.put(2, "周芷若");
        map.put(3, "汪峰");
        map.put(4, "滅絕師太");

// 3.使用keySet+增強(qiáng)for迭代map中的元素,并打印
Set<Integer> keySet = map.keySet();
for (Integer key : keySet) {
            String value = map.get(key);
            System.out.println(key + " -- "+ value);
        }

// 4.使用put向該map集合中插入一個(gè)編碼為5姓名為李曉紅的信息
map.put(5, "李曉紅");

// 5.使用remove移除該map中的編號(hào)為1的信息
map.remove(1);

// 6.使用put將map集合中編號(hào)為2的姓名信息修改為"周林"
map.put(2, "周林");
        System.out.println(map);
    }
}

七、有2個(gè)數(shù)組唱矛,第一個(gè)數(shù)組內(nèi)容為:[黑龍江省,浙江省,江西省,廣東省,福建省]罚舱,第二個(gè)數(shù)組為:[哈爾濱,杭州,南昌,廣州,福州],將第一個(gè)數(shù)組元素作為key绎谦,第二個(gè)數(shù)組元素作為value存儲(chǔ)到Map集合中管闷。如{黑龍江省=哈爾濱, 浙江省=杭州, …}。

public class MapTest05 {
public static void main(String[] args) {
// 1.定義第一個(gè)數(shù)組arr1
String[] arr1 = {"黑龍江省", "浙江省", "江西省", "廣東省", "福建省"};
// 2.定義第二個(gè)數(shù)組arr2
String[] arr2 = {"哈爾濱", "杭州", "南昌", "廣州", "福州"};

// 3.創(chuàng)建HashMap,key存放省,value存放市
HashMap<String, String> hm = new HashMap<>();

// 4.使用普通for循環(huán)遍歷arr1
for (int i = 0; i < arr1.length; i++) {
// 5.根據(jù)索引到arr1中獲取到省
String key = arr1[i];
// 6.根據(jù)索引到arr2中獲取到省會(huì)城市
String value = arr2[i];

// 7.將省和省會(huì)城市添加到HashMap中
hm.put(key, value);
        }
// 8.輸出HashMap中的內(nèi)容
System.out.println(hm);
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窃肠,一起剝皮案震驚了整個(gè)濱河市包个,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌冤留,老刑警劉巖碧囊,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異纤怒,居然都是意外死亡糯而,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門泊窘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來熄驼,“玉大人像寒,你說我怎么就攤上這事」霞郑” “怎么了诺祸?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長祭芦。 經(jīng)常有香客問我筷笨,道長,這世上最難降的妖魔是什么龟劲? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任胃夏,我火速辦了婚禮,結(jié)果婚禮上昌跌,老公的妹妹穿的比我還像新娘构订。我一直安慰自己,他們只是感情好避矢,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著囊榜,像睡著了一般审胸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上卸勺,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天砂沛,我揣著相機(jī)與錄音,去河邊找鬼曙求。 笑死碍庵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的悟狱。 我是一名探鬼主播静浴,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼挤渐!你這毒婦竟也來了苹享?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤浴麻,失蹤者是張志新(化名)和其女友劉穎得问,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體软免,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宫纬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了膏萧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漓骚。...
    茶點(diǎn)故事閱讀 39,769評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蝌衔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出认境,到底是詐尸還是另有隱情胚委,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布叉信,位于F島的核電站亩冬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏硼身。R本人自食惡果不足惜硅急,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望佳遂。 院中可真熱鬧营袜,春花似錦、人聲如沸丑罪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吩屹。三九已至跪另,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間煤搜,已是汗流浹背免绿。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留擦盾,地道東北人嘲驾。 一個(gè)月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像迹卢,于是被迫代替她去往敵國和親辽故。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評論 2 354