Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 生成50个随机浮点数组列表值唯一_Java_Arrays_Arraylist_Random - Fatal编程技术网

Java 生成50个随机浮点数组列表值唯一

Java 生成50个随机浮点数组列表值唯一,java,arrays,arraylist,random,Java,Arrays,Arraylist,Random,我正在尝试编写代码,在ArrayList中存储50个随机生成的浮点数。使用常规for循环循环遍历这些值,并删除任何小于0.5的值。然后使用for each循环打印出剩余的值 这是我到目前为止的代码,我不知道从这里去哪里 import java.util.ArrayList; public class fiftyFloats { public static void main (String [] args) { //create a reference for t

我正在尝试编写代码,在ArrayList中存储50个随机生成的浮点数。使用常规for循环循环遍历这些值,并删除任何小于0.5的值。然后使用for each循环打印出剩余的值

这是我到目前为止的代码,我不知道从这里去哪里

import java.util.ArrayList;

public class fiftyFloats {

    public static void main (String [] args) { 

        //create a reference for the array list 
        ArrayList <Float> vals; 

        //reserve space for it in memeory 
        vals = new ArrayList <Float> (50);

        for (int i = 0; i<vals.size(); i++){
            i = new Float
        }

        for (Integer atPos: vals) { 
            System.out.println(vals.toString()); 
        }
    }
}
import java.util.ArrayList;
公营五十股{
公共静态void main(字符串[]args){
//为数组列表创建引用
ArrayList VAL;
//在内存中为它保留空间
VAL=新阵列列表(50);

对于(int i=0;i有几种方法可以实现这一点,具体取决于您想要生成“随机”数的方式

java.util.Random有一些可以使用的函数,包括“nextFloat”,它返回介于0和1之间的浮点类型的随机值

所以

ArrayList vals=new ArrayList();
Random rand=新的Random();
对于(int i=0;i<50;i++){
添加(rand.nextFloat());
}
然后,再次循环浏览列表并删除任何不符合条件的数字应该很容易。您不需要在ArrayList的前面保留50个位置,这是使用它的好处之一,您可以动态添加到列表中

你的循环无法正常工作。你已经在循环代码中将“i”定义为一个整数,现在你正在尝试创建一个同名的浮点。你可以在循环中使用“i”,但它将是你在“int i=0”处指定的“i”

总的来说,您似乎是个新手,不了解java的一些核心内容,比如变量是如何工作的。咨询导师/老师/基础文本可能会对您有很大帮助

  • 要生成随机数,需要使用random类
  • 注意-random.nextFloat()只会生成一个介于0.0和1之间的数字,如果要包含较大的数字,则需要将其相乘

  • 无法将用于控制for循环的整数重新分配给循环中的浮点

  • 不需要将arrayList.toString()放入循环中

    import java.util.ArrayList;
    import java.util.Random;
    
    public class fiftyFloats {
    
    public static void main(String[] args) {
    
    ArrayList<Float> vals = new ArrayList<Float>();
    
    Float randomNum;
    Random rand = new Random();
    for (int i = 0; i < 50; i++) {
        randomNum = rand.nextFloat();
        if (randomNum > 0.5) {
            vals.add(randomNum);
        }
    }
    
    System.out.println(vals.toString());
    
    }}
    
    import java.util.ArrayList;
    导入java.util.Random;
    公营五十股{
    公共静态void main(字符串[]args){
    ArrayList VAL=新的ArrayList();
    浮动随机数;
    Random rand=新的Random();
    对于(int i=0;i<50;i++){
    randomNum=rand.nextFloat();
    如果(随机数>0.5){
    VAL.add(随机数);
    }
    }
    System.out.println(vals.toString());
    }}
    

  • 由于所需的浮点值不在最小值和最大值之间引用,因此可以使用nano-time

    例如:

    List <Float> vals = new ArrayList <Float> (50);
    
    for (int i = 0; i<vals.size(); i++){
        vals.add (System.current/100.0f);
    }**
    
    List vals=new ArrayList(50);
    
    对于(int i=0;i我想这就是你在这里要做的:

        //create a reference for the array list 
        ArrayList<Float> vals;
    
        //reserve space for it in memeory 
        vals = new ArrayList<Float>(50);
    
        Random rand = new Random();
    
        for (int i = 0; i < 50; i++) {
            vals.add(rand.nextFloat());
        }
    
        for (Float val : vals) {
            System.out.println(val.toString());
        }
    
    //为数组列表创建引用
    ArrayList VAL;
    //在内存中为它保留空间
    VAL=新阵列列表(50);
    Random rand=新的Random();
    对于(int i=0;i<50;i++){
    添加(rand.nextFloat());
    }
    用于(浮动值:val){
    System.out.println(val.toString());
    }
    
    在原始代码中需要指出的一些事情:

        Float fl = new Float(2.2);
    
        //create a reference for the array list 
        ArrayList<Float> vals;
    
        // Here, you've set the _Capacity_, not the size.
        vals = new ArrayList<Float>(50); // vals.size() => 0
    
        // Based on above, you are essentially saying "never do these things"
        // -> for (int i = 0; i < 0; i++)
        for (int i = 0; i < vals.size(); i++) {
    
            // this, if a valid expression, would have an incompatible type
            // since i is of type int.
    
            // if you were to use this, you would need to use a constructor such as
            // new Float(1.2).
    
            i = new Float
    
        }
    
        // In this enhanced loop, you are assigning a value from ArrayList vals
        // to atPos, not the position. Since ArrayList is of type Float,
        // atPos is a Float.
        for (Integer atPos : vals) {
            System.out.println(vals.toString());
    
        }
    
    Float fl=新浮点数(2.2);
    //为数组列表创建引用
    ArrayList VAL;
    //这里,您设置的是容量,而不是大小。
    VAL=new ArrayList(50);//vals.size()=>0
    //基于以上,你本质上是在说“永远不要做这些事情”
    //->for(int i=0;i<0;i++)
    对于(int i=0;i
    但是没有随机生成的数字,只有一些无法编译的循环。我对java非常陌生,非常感谢您的详尽回答
        Float fl = new Float(2.2);
    
        //create a reference for the array list 
        ArrayList<Float> vals;
    
        // Here, you've set the _Capacity_, not the size.
        vals = new ArrayList<Float>(50); // vals.size() => 0
    
        // Based on above, you are essentially saying "never do these things"
        // -> for (int i = 0; i < 0; i++)
        for (int i = 0; i < vals.size(); i++) {
    
            // this, if a valid expression, would have an incompatible type
            // since i is of type int.
    
            // if you were to use this, you would need to use a constructor such as
            // new Float(1.2).
    
            i = new Float
    
        }
    
        // In this enhanced loop, you are assigning a value from ArrayList vals
        // to atPos, not the position. Since ArrayList is of type Float,
        // atPos is a Float.
        for (Integer atPos : vals) {
            System.out.println(vals.toString());
    
        }