日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IT十八掌作业_java基础第十一天_集合

發(fā)布時間:2025/4/16 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IT十八掌作业_java基础第十一天_集合 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.定義罪犯Criminal類,height(身高)/weight(體重)/blood(血型)/home(籍貫)屬性。

????重寫hashcode和equals,使用四個屬性的組合進行實現(xiàn)。

????創(chuàng)建HashSet集合,里面存放20個Criminal對象,其中O型血2人,A型血3人,B型血4人,AB型血1人,其余血型不詳。

????注意:hashcode()方法實現(xiàn)時,要求身高、體重、和血型三個屬性合成一個數(shù)字,實現(xiàn)兩兩比較的高效算法。

2.Map:

-----------

????key(鍵)?-?value(值)?:kv對.

????創(chuàng)建HashMap,Person為key,Dog為value。

????存放100元素,遍歷map集合,兩種方式。EntrySet?+?KeySet.

????刪除操作。remove();

3.HashTable:線程安全的。

---------------

????1.put

????2.

????3.

????4.

-----------------------------------------------------------------------------------------------------

keySet方法 : 返回的是鍵的set集合,通過get(key)方法獲取value

entrySet方法 : 返回的是映射關(guān)系的set集合,通過getKey(),getValue()方法獲取key,value

答:

1.

package?com.it18zhang.day11;

?

import?java.util.HashMap;

import?java.util.HashSet;

import?java.util.Map;

import?java.util.Set;

?

public?class?HashSetTest?{

?

????public?static?void?main(String[]?args)?{

????????Set<Criminal>?set?=?new?HashSet<Criminal>();

?????????

????????Criminal?c1?=?new?Criminal(180,70,2,"江西");

????????Criminal?c2?=?new?Criminal(176,60,1,"北京");

????????Criminal?c3?=?new?Criminal(160,70,0,"福建");

????????Criminal?c4?=?new?Criminal(183,73,3,"湖南");

????????Criminal?c5?=?new?Criminal(183,73,3,"湖南");

?????????

????????set.add(c1);

????????set.add(c2);

????????set.add(c3);

????????set.add(c4);

????????set.add(c5);

?????????

????????System.out.println(c1.equals(c2));

????????System.out.println(c5.equals(c4));

????????for(Criminal?c?:?set){

????????????out(c);

????????}

????}

?????

????public?static?void?out(Criminal?c){

????????Map<Integer,String>?map?=?new?HashMap<Integer,String>();

????????map.put(0,?"A");

????????map.put(1,?"B");

????????map.put(2,?"AB");

????????map.put(3,?"O");

????????System.out.println("身高"+c.getHeight()+"體重"+c.getWeight()+"血型"+map.get(c.getBlood())+"籍貫"+c.getHome());

?????????

????}

?

}

?

package?com.it18zhang.day11;

?

public?class?Criminal?{

????private?int?height;

????private?int?weight;

????private?int?blood;

????private?String?home;

????public?Criminal(){}

????public?Criminal(int?height,?int?weight,?int?blood,?String?home)?{

????????if(height?<=?0){

????????????System.out.println("身高不能為負!");

????????????System.exit(-1);

????????}else?if(weight?<=?0){

????????????System.out.println("體重不能為負");

????????}else?if(blood?>?3?||?blood?<?0){

????????????System.out.println("血型,必須為0-3之間的值");

????????????System.exit(-1);

????????}else{

????????????this.height?=?height;

????????????this.weight?=?weight;

????????????this.blood?=?blood;

????????????this.home?=?home;

????????}

????}

?????

????public?int?getHeight()?{

????????return?height;

????}

????public?void?setHeight(int?height)?{

????????this.height?=?height;

????}

????public?int?getWeight()?{

????????return?weight;

????}

????public?void?setWeight(int?weight)?{

????????this.weight?=?weight;

????}

????public?int?getBlood()?{

????????return?blood;

????}

????public?void?setBlood(int?blood)?{

????????this.blood?=?blood;

????}

????public?String?getHome()?{

????????return?home;

????}

????public?void?setHome(String?home)?{

????????this.home?=?home;

????}

????/*?

?????*重寫hashcode?

?????*/

????public?int?hashCode()

????{

????????return?height+weight+blood+home.hashCode();

????}

????/**

?????*?重寫equals方法

?????*/

????public?boolean?equals(Object?obj)

????{

????????if(obj?==?null)

????????????return?false;

????????if(obj?==?this)

????????????return?true;

?????????

????????//height,weight,blood,home四個條件同時滿足才相同。

????????if(obj.getClass()?==?Criminal.class){

????????????Criminal?c?=?(Criminal)obj;

????????????if(c.height?==?this.height?&&?c.weight?==?this.weight?&&?c.blood?==?this.blood?&&?this.home.equals(c.home))

????????????????return?true;

????????}

?????????

????????return?false;

?????????

????}

?????

}


2.Map

package?com.it18zhang.day11;

?

import?java.util.ArrayList;

import?java.util.HashMap;

import?java.util.List;

import?java.util.Map;

import?java.util.Map.Entry;

?

public?class?HashMapTest?{

????public?static?void?main(String[]?args)?{

????????Map<Person,Dog>?map?=?new?HashMap<Person,Dog>();

????????List<Person>?keys?=?new?ArrayList<Person>();

????????for(int?i?=?0;?i?<?100;?i++){

????????????Person?p?=?new?Person("Person"+i,i);

????????????map.put(p,?new?Dog("dog"+i,i));

????????????keys.add(p);

????????}

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

????????for(Person?p?:?map.keySet()){

????????????System.out.println(p.getName()+"\t"+map.get(p).getName());

????????}

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

????????for(Entry<Person,Dog>?entry?:?map.entrySet()){

????????????System.out.println(entry.getKey().getName()+"\t"+entry.getValue().getName());

????????}

????????System.out.println("------------remove前---------------");

????????for(Person?p?:?keys){

????????????map.remove(p);

????????}

?????????

????????System.out.println("------------remove后---------------");

????????System.out.println("map是否為空"+map.isEmpty());

????}

}

package?com.it18zhang.day11;

?

public?class?Person?{

????private?String?name;

????private?int?age;

?????

????public?Person()?{

????????super();

????}

?

????public?Person(String?name,?int?age)?{

????????super();

????????this.name?=?name;

????????this.age?=?age;

????}

?

????public?String?getName()?{

????????return?name;

????}

?

????public?void?setName(String?name)?{

????????this.name?=?name;

????}

?

????public?int?getAge()?{

????????return?age;

????}

?

????public?void?setAge(int?age)?{

????????this.age?=?age;

????}

????public?int?hashCode(){

????????return?name?==?null??age?:?name.hashCode()?+?age;

????}

????public?boolean?equals(Object?obj){

????????if(obj?==?null)

????????????return?false;

????????if(obj?==?this)

????????????return?true;

????????if(obj.getClass()?==?Person.class){

????????????Person?p?=?(Person)obj;

????????????//name是否相同

????????????boolean?nameEqu?=?false;

????????????if(this.name?==?null){

????????????????if(p.name?==?null)

????????????????????nameEqu?=?true;

????????????????else{

????????????????????nameEqu?=?false;

????????????????}

????????????}

????????????else{

????????????????nameEqu?=?name.equals(p.name);

????????????}

?????????????

????????????boolean?ageEqu?=?(this.age?==?p.age);

?????????????

????????????return?nameEqu?&&?ageEqu;

????????}

????????return?false;

????}

}

package?com.it18zhang.day11;

?

public?class?Dog?{

????private?String?name;

????private?int?age;

????public?Dog()?{

?????????

????}

?????

????public?Dog(String?name,?int?age){

????????this.name?=?name;

????????this.age?=?age;

????}

?

????public?String?getName()?{

????????return?name;

????}

?

????public?void?setName(String?name)?{

????????this.name?=?name;

????}

?

????public?int?getAge()?{

????????return?age;

????}

?

????public?void?setAge(int?age)?{

????????this.age?=?age;

????}

?

?????

?????

?????

}


轉(zhuǎn)載于:https://blog.51cto.com/liubx/1784026

總結(jié)

以上是生活随笔為你收集整理的IT十八掌作业_java基础第十一天_集合的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。