如何返回所有浮点值​从java中的数组?

dw1jzc5e  于 2021-06-27  发布在  Java
关注(0)|答案(1)|浏览(355)

我只返回最后一个值,请帮我返回所有值

public static float[] generatePatientsTemperatures(int patientsCount) {
        float[] patientsTemperature = new float[patientsCount];
        for (int i = 1; i < patientsCount; i++) {
            patientsTemperature[i] = Math.round(((float) (Math.random() * 8) + 32) * 100) / (float) 100.0;
        }

        return patientsTemperature;
ghhkc1vu

ghhkc1vu1#

热释光;博士

如果你问为什么你得到的数组比预期少了一个元素,那是因为你初始化了 i 在你的 for 循环。
➥ 改变 int i = 1int i = 0 .

数组包含所有值

您正在返回所有值。数组就是这样做的:保存一系列值。您的代码成功返回一个充满 float 基本值。

示例代码

我建议使用 ThreadLocalRandom 而不是 Math.random 因为它提供了一些简单方便的方法。如果你做过多线程,它会让你成为未来的证明。
你得换衣服 i = 1i = 0 以获得结果中正确的元素数。也许这就是你的问题所要问的,“为什么我得到的数组元素比预期的少?”。您的初始化 i 会导致这个问题。

public static float[] generatePatientsTemperatures ( final int patientsCount )
{
    float[] patientsTemperature = new float[ patientsCount ];
    for ( int i = 0 ; i < patientsCount ; i++ )
    {
        patientsTemperature[ i ] = ThreadLocalRandom.current().nextInt(320,450) * 0.1F;
    }
    return patientsTemperature;
}

试试那个密码。要以文本形式查看数组的所有值,请调用utility方法 Arrays.toString( yourArrayHere ) .

float[] temps = App.generatePatientsTemperatures( 3 );
String output = Arrays.toString( temps );

运行时:
输出=[35.5,37.100002,34.3]
通过基于零的计数访问数组中的每个元素:第一个元素为零,第二个元素为1,依此类推。

float first = temps[ 0 ] ;
float second = temps[ 1 ] ;
float third = temps[ 2 ] ;

列表

使用 List 比数组简单。 List 仅保存对象引用,不允许使用基元值。java有一个自动装箱功能,可以自动打开 float 将原语转换为 Float 物体。只要重新定义你的阵型 Float 而不是 float .
提示: List.of 生成不可修改的集合。

public static List < Float > generatePatientsTemperatures ( final int patientsCount )
{
    Float[] patientsTemperature = new Float[ patientsCount ];
    for ( int i = 0 ; i < patientsCount ; i++ )
    {
        patientsTemperature[ i ] = ThreadLocalRandom.current().nextInt( 320 , 450 ) * 0.1F;  // Auto-boxed from `float` primitive to `Float` object.
    }
    List < Float > results = List.of( patientsTemperature );
    return results;
}

一些代码来运行它。

List < Float > temps = App.generatePatientsTemperatures( 3 );
String output = temps.toString();

输出=[32.8,43.600002,35.5]

相关问题