(JAVA)如何将列表中的double转换为int

(JAVA)如何将列表中的double转换为int,java,android,arraylist,int,double,Java,Android,Arraylist,Int,Double,我列了一张单子,叫做单子,还有两张双倍的单子,叫做体重和年龄 然后我试着从列表中获取一个元素,比如list.getAge*2-1,但是它告诉我我不能在get函数中放入double,所以我试着执行intAge-1,但是当我将那段代码放入if命令中时,就像这样 iflist.getint年龄*2-1>Weight.intValue 但出于某种原因,它给了我这样的解释: 运算符>不能应用于java.lang.Object,int 为什么,为什么 总之,这是我的代码注释,我用一些额外的android库编

我列了一张单子,叫做单子,还有两张双倍的单子,叫做体重和年龄

然后我试着从列表中获取一个元素,比如list.getAge*2-1,但是它告诉我我不能在get函数中放入double,所以我试着执行intAge-1,但是当我将那段代码放入if命令中时,就像这样 iflist.getint年龄*2-1>Weight.intValue 但出于某种原因,它给了我这样的解释:

运算符>不能应用于java.lang.Object,int

为什么,为什么

总之,这是我的代码注释,我用一些额外的android库编写了它

package com.example.ademapp;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final Button button = (Button) findViewById(R.id.Start);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            EditText text = (EditText)findViewById(R.id.Weight);
            EditText text3 = (EditText)findViewById(R.id.Age);
            Double Weight = Double.parseDouble(text.getText().toString());
            EditText text2 = (EditText)findViewById(R.id.Height);
            Double Height = Double.parseDouble(text2.getText().toString());
            Double IMC = Weight/Height/Math.pow(Height/100,2);
            TextView Result=(TextView)findViewById(R.id.Result);
            List list = Arrays.asList(15,19,14.5,16.5,14,16,13.75,17.5,13.5,17.5,13,17.5,13,18,13,18.5,13.25,19,13.5,20,13.75,20.5,14,21,14.5,22,15,22.5,15.5,23,16,24,16.5,24.5,17,25);
            Double Age = Double.parseDouble(text3.getText().toString());
            RadioButton Adult = (RadioButton) findViewById(R.id.Adult);
            RadioButton Kid = (RadioButton) findViewById(R.id.Kid);
            if(Adult.isChecked())
            {
                if (IMC<18.5)
                {
                    Result.setText("Tu est Trop Maigre!");
                }
                else if (IMC>30)
                {
                    Result.setText("Tu est Trop Gras!");
                }
                else
                {
                    Result.setText("Bravo! Tu est en bonne santée!");
                }
            }
            else if (Kid.isChecked())
            {

                if(list.get((int) ((Age * 2) - 1)) > Weight.intValue())
            }

        }
    });
}
}

您使用的不是泛型列表

 List list = Arrays.asList(15,19, ... , 25)
如果列表不是泛型的,则它包含Objects.java中最常见的类 您将整数和双精度存储在一起,因此需要由它们的父级对其进行泛型

List<? extends Number> list = Arrays.asList(15,19, ... , 25)
tl;博士 使用声明列表内容的类型

ListinputDoubles=List.of 15,19,14.5,16.5,14,16,13.75,17.5,13,17.5,13,17.5,13,18,13,18.5,13.25,19,13.5,20,13.75,20.5,14,21,14.5,22,15,22.5,15.5,23,16,24,16.5,24.5,24.5,24.5,25; 使用泛型 正如khelwood所评论的,请参见:

使用,其中指定列表集合要保存的数据类型。如果不指定要保存的类型,,列表就不知道检索到的元素的类型

如果没有泛型,当调用list.get…时,编译器只会看到一个对象而不是一个对象。您的代码>Weight.intValue要求将对象与int原语进行比较,这没有意义,因为对象不是数字

与此相反:

List list = Arrays.asList(15,19,14.5,16.5,14,16,13.75,17.5,13.5,17.5,13,17.5,13,18,13,18.5,13.25,19,13.5,20,13.75,20.5,14,21,14.5,22,15,22.5,15.5,23,16,24,16.5,24.5,17,25);
        
…将添加到列表声明中,如下所示:

List < Double > list = Arrays.asList(15,19,14.5,16.5,14,16,13.75,17.5,13.5,17.5,13,17.5,13,18,13,18.5,13.25,19,13.5,20,13.75,20.5,14,21,14.5,22,15,22.5,15.5,23,16,24,16.5,24.5,17,25);

看到这么多额外的代码。仅发布证明您的特定问题所需的最低要求。
List < Double > list = Arrays.asList(15,19,14.5,16.5,14,16,13.75,17.5,13.5,17.5,13,17.5,13,18,13,18.5,13.25,19,13.5,20,13.75,20.5,14,21,14.5,22,15,22.5,15.5,23,16,24,16.5,24.5,17,25);
List < Double > inputDoubles = List.of( 15,19,14.5,16.5,14,16,13.75,17.5,13.5,17.5,13,17.5,13,18,13,18.5,13.25,19,13.5,20,13.75,20.5,14,21,14.5,22,15,22.5,15.5,23,16,24,16.5,24.5,17,25 ) ;