一、Java实现计算BMI值
1.计算体重指数BMI,在国际上是用来衡量人体的胖瘦程度以及是否健康的一个标准。
2.计算BMI值的算法是BMI=(体重)kg/(身高)^2(m)
3.BMI的标准
男性: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.例子的实现:
- import java.util.Scanner;
- public class Java01 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- String sex;
- double height,weight;//定义身高、体重
- double bmi;//计算保存BMI值
- Scanner scan = new Scanner(System.in);
- System.out.println("请输入您的性别:");
- sex=scan.next();
- System.out.println("请输入您的身高(m):");
- height=scan.nextDouble();
- System.out.println("请输入您的体重(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("你输入有误!");
- }
- }
- }
运行的结果是:
从上面代码中,如果用户输入的不是男或女,则返回你输入有误。输入你的性别、身高(m)和体重(kg),再通过计算BMI值,然后判断您的人体的胖瘦程度。
二、HashSet集合
1.HashSet集合是Set接口的一个实现类,它存储的元素不可以是有重复的方法,而且元素也是无序的。如果给HashSet集合添加一个对象的时候,第一是调用对象的hashCode()方法来判断元素所在的存储位置,再用equals()方法调用这个位置的元素有没有重复的元素。
2.HashSet集合的用法
- import java.util.HashSet;
- import java.util.Iterator;
- public class t6 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //创建HashSet集合
- HashSet hs=new HashSet();
- //向hs集合添加元素
- hs.add("aa");
- hs.add("bb");
- hs.add("cc");
- hs.add("dd");
- //获取Iterator对象
- Iterator it = hs.iterator();
- //通过循环,判断hs集合是否有元素
- while(it.hasNext()){
- String s=(String)it.next();
- System.out.println(s);
- }
- }
- }
运行的结果是:
三、如何把Student对象存入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 stub
- HashSet hs=new HashSet();//创建HashSet对象
- Student s1=new Student("1","张三");//Student对象
- 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);
- }
- }
运行的结果是:
从上面代码中,如果没有在Student类重写hashCode()方法和equals()方法的时候,会出现重复的元素。在hashCode()方法会返回它的id属性的值,在equals()方法中去比较对象的id属性是否有一样,然后返回一个结果。
四、总结
本文主要介绍了Java实现计算BMI值、HashSet集合、如何把Student对象存入HashSet集合中。这个BMI值主要是在国际上是用来衡量人体的胖瘦程度以及是否健康的一个标准。HashSet集合是Set接口的一个实现类,它存储的元素不可以是有重复的方法,而且元素也是无序的。把Student对象存入到hashSet中需要重写这个Student类的重写hashCode()方法和equals()方法,才不会出现重复的元素。通过本文的学习,希望对你有所帮助!
本文转载自微信公众号「Java进阶学习交流」,可以通过以下二维码关注。转载本文请联系Java进阶学习交流公众号。