手把手教你用Java實(shí)現(xiàn)計(jì)算BMI值、HashSet集合
后臺(tái)回復(fù)“Java”即可獲贈(zèng)Java學(xué)習(xí)資料
一、Java實(shí)現(xiàn)計(jì)算BMI值
1.計(jì)算體重指數(shù)BMI,在國(guó)際上是用來衡量人體的胖瘦程度以及是否健康的一個(gè)標(biāo)準(zhǔn)。
2.計(jì)算BMI值的算法是BMI=(體重)kg/(身高)^2(m)
3.BMI的標(biāo)準(zhǔn)
男性:BMI值低于20,屬于過輕;BMI值20-25,屬于適中;BMI值25-30,屬于過重;BMI值30-35,屬于肥胖;BMI值高于35,屬于非常肥胖;
女性:BMI值低于19,屬于過輕;BMI值19-24,屬于適中;BMI值24-29,屬于過重;BMI值29-34,屬于肥胖;BMI值高于34,屬于非常肥胖;
4.例子的實(shí)現(xiàn):
import java.util.Scanner;public class Java01 {public static void main(String[] args) {// TODO Auto-generated method stubString sex;double height,weight;//定義身高、體重double bmi;//計(jì)算保存BMI值Scanner scan = new Scanner(System.in);System.out.println("請(qǐng)輸入您的性別:");sex=scan.next();System.out.println("請(qǐng)輸入您的身高(m):");height=scan.nextDouble();System.out.println("請(qǐng)輸入您的體重(kg):");weight=scan.nextDouble();bmi=weight/height/height;if(sex.equals("男")){if(bmi<20){System.out.println("您的體重過輕!您的BMI值為:"+bmi);}else if(bmi<25&&bmi>=20){System.out.println("您的體重適中!您的BMI值為:"+bmi);}else if(bmi<30&&bmi>=25){System.out.println("您的體重過重!您的BMI值為:"+bmi);}else if(bmi<35&&bmi>=30){System.out.println("您的體重肥胖!您的BMI值為:"+bmi);}else{System.out.println("您的體重非常肥胖!您的BMI值為:"+bmi);}}else if(sex.equals("女")){if(bmi<19){System.out.println("您的體重過輕!您的BMI值為:"+bmi);}else if(bmi<24&&bmi>=19){System.out.println("您的體重適中!您的BMI值為:"+bmi);}else if(bmi<29&&bmi>=24){System.out.println("您的體重過重!您的BMI值為:"+bmi);}else if(bmi<34&&bmi>=29){System.out.println("您的體重肥胖!您的BMI值為:"+bmi);}else if(bmi>=34){System.out.println("您的體重肥胖!您的BMI值為:"+bmi);}}else{System.out.print("你輸入有誤!");}}}
運(yùn)行的結(jié)果是:

從上面代碼中,如果用戶輸入的不是男或女,則返回你輸入有誤。輸入你的性別、身高(m)和體重(kg),再通過計(jì)算BMI值,然后判斷您的人體的胖瘦程度。
二、HashSet集合
1.HashSet集合是Set接口的一個(gè)實(shí)現(xiàn)類,它存儲(chǔ)的元素不可以是有重復(fù)的方法,而且元素也是無序的。如果給HashSet集合添加一個(gè)對(duì)象的時(shí)候,第一是調(diào)用對(duì)象的hashCode()方法來判斷元素所在的存儲(chǔ)位置,再用equals()方法調(diào)用這個(gè)位置的元素有沒有重復(fù)的元素。
2.HashSet集合的用法
import java.util.HashSet;import java.util.Iterator;public class t6 {public static void main(String[] args) {// TODO Auto-generated method stub//創(chuàng)建HashSet集合HashSet hs=new HashSet();//向hs集合添加元素hs.add("aa");hs.add("bb");hs.add("cc");hs.add("dd");//獲取Iterator對(duì)象Iterator it = hs.iterator();//通過循環(huán),判斷hs集合是否有元素while(it.hasNext()){String s=(String)it.next();System.out.println(s);}}}
運(yùn)行的結(jié)果是:

三、如何把Student對(duì)象存入HashSet集合中?
import java.util.*;//定義Student類class Student{private String id;private String name;public Student(String id,String name){this.id=id;this.name=name;}//重寫toString()方法public String toString(){return id+":"+name;}//重寫hashCode()方法public int hashCode(){return id.hashCode();}//重寫equals()方法public boolean equals(Object o){if(this==o){return true;}if(!(o instanceof Student)){return false;}Student s=(Student)o;boolean b=this.id.equals(s.id);return b;}}public class t7 {public static void main(String[] args) {// TODO Auto-generated method stubHashSet hs=new HashSet();//創(chuàng)建HashSet對(duì)象Student s1=new Student("1","張三");//Student對(duì)象Student s2=new Student("2","李四");Student s3=new Student("2","李四");Student s4=new Student("3","小王");Student s5=new Student("1","張三");hs.add(s1);hs.add(s2);hs.add(s3);hs.add(s4);hs.add(s5);System.out.println(hs);}}
運(yùn)行的結(jié)果是:

從上面代碼中,如果沒有在Student類重寫hashCode()方法和equals()方法的時(shí)候,會(huì)出現(xiàn)重復(fù)的元素。在hashCode()方法會(huì)返回它的id屬性的值,在equals()方法中去比較對(duì)象的id屬性是否有一樣,然后返回一個(gè)結(jié)果。
四、總結(jié)
本文主要介紹了Java實(shí)現(xiàn)計(jì)算BMI值、HashSet集合、如何把Student對(duì)象存入HashSet集合中。這個(gè)BMI值主要是在國(guó)際上是用來衡量人體的胖瘦程度以及是否健康的一個(gè)標(biāo)準(zhǔn)。HashSet集合是Set接口的一個(gè)實(shí)現(xiàn)類,它存儲(chǔ)的元素不可以是有重復(fù)的方法,而且元素也是無序的。把Student對(duì)象存入到hashSet中需要重寫這個(gè)Student類的重寫hashCode()方法和equals()方法,才不會(huì)出現(xiàn)重復(fù)的元素。通過本文的學(xué)習(xí),希望對(duì)你有所幫助!
------------------- End -------------------
往期精彩文章推薦:

歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Java學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬水千山總是情,點(diǎn)個(gè)【在看】行不行
