Java 生成50个随机浮点数组列表值唯一
我正在尝试编写代码,在ArrayList中存储50个随机生成的浮点数。使用常规for循环循环遍历这些值,并删除任何小于0.5的值。然后使用for each循环打印出剩余的值 这是我到目前为止的代码,我不知道从这里去哪里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
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());
}