Java 我需要帮助传递数组并对其调用基本方法
我是编程和java新手,我正在尝试编写一个简单的气泡排序算法。我可能有点不知所措;我对Oracle的java教程没有太多了解。我现在遇到的问题不是气泡排序本身,而是在排序之前创建数组并打印它 以下是我到目前为止的情况:Java 我需要帮助传递数组并对其调用基本方法,java,arrays,class,Java,Arrays,Class,我是编程和java新手,我正在尝试编写一个简单的气泡排序算法。我可能有点不知所措;我对Oracle的java教程没有太多了解。我现在遇到的问题不是气泡排序本身,而是在排序之前创建数组并打印它 以下是我到目前为止的情况: public class BubbleSort { public BubbleSort(int size) { // creates array int[] items = new int[size]; } publi
public class BubbleSort {
public BubbleSort(int size) {
// creates array
int[] items = new int[size];
}
public void fillArray(int[] a) {
// fill array with random ints
for (int i=0; i<(a.length-1); i++) {
a[i] = java.util.Random.nextInt(50);
}
}
public void printArray(int[] a) {
for (int i=0; i<a.length; i++) {
System.out.print(a[i] + " ");
}
}
public void BubbleSortAlgorithm() {
// bubble sorting algorithm goes here
}
public static void main(String[] args) {
BubbleSort bubbleSort = new BubbleSort(20);
bubbleSort.fillArray(items);
bubbleSort.printArray(items);
// bubbleSort.BubbleSortAlgorithm(items);
// bubbleSort.printArray(items);
}
}
公共类BubbleSort{
公共BubbleSort(整数大小){
//创建数组
int[]项目=新int[大小];
}
公共空填充数组(int[]a){
//用随机整数填充数组
对于(int i=0;i您调用:
java.util.Random.nextInt(50);
最好导入要使用的类。这会将此块放在文件的顶部:
import java.util.Random;
并将现有代码更改为:
Random.nextInt(50);
这解决了样式问题,但仍然会出现相同的编译器错误
静态方法是属于某个类的东西;在使用它们之前,不需要您创建(实例化)该类的对象。不是每个类的实例化都有该方法,而是该类的所有实例化实例共享相同的静态方法和变量
具体来说,Random类中的.nextInt()不是静态的;它是一个普通方法。因此它需要一个实例化的Random来处理。这意味着您应该尝试:
Random random = new Random();
random.nextInt(50);
在实例化一个随机变量之后,可以继续对其调用nextInt(),次数可以根据需要而定
数学类中有一个常用的静态方法示例
Math.min(10, 5);
Math.max(100, 100000);
等等
需要实例化Random的原因是它有状态。它不是完全随机的,而是伪随机的,因为它需要一个数字作为开始。如果不给它一个数字,它需要当前时间。两个Java随机对象在完全相同的时刻初始化……将产生相同的“随机”数字序列
这实际上是很有用的;您可以给它们随机对象一个开始的数字,并且您可以将此行为用于测试目的
Random random = new Random(1);
这是用数字1进行种子设定。这意味着每次运行代码时,它都会为nextInt()生成相同的随机数。如果你不给它任何数字作为种子,它就会这样做:
Random random = new Random(System.currentTimeMillis());
但问题是Random.nextInt不是静态方法。您调用:
java.util.Random.nextInt(50);
最好导入要使用的类。这会将此块放在文件的顶部:
import java.util.Random;
并将现有代码更改为:
Random.nextInt(50);
这解决了样式问题,但仍然会出现相同的编译器错误
静态方法是属于某个类的东西;在使用它们之前,不需要您创建(实例化)该类的对象。不是每个类的实例化都有该方法,而是该类的所有实例化实例共享相同的静态方法和变量
具体来说,Random类中的.nextInt()不是静态的;它是一个普通方法。因此它需要一个实例化的Random来处理。这意味着您应该尝试:
Random random = new Random();
random.nextInt(50);
在实例化一个随机变量之后,可以继续对其调用nextInt(),次数可以根据需要而定
数学类中有一个常用的静态方法示例
Math.min(10, 5);
Math.max(100, 100000);
等等
需要实例化Random的原因是它有状态。它不是完全随机的,而是伪随机的,因为它需要一个数字作为开始。如果不给它一个数字,它需要当前时间。两个Java随机对象在完全相同的时刻初始化……将产生相同的“随机”数字序列
这实际上是很有用的;您可以给它们随机对象一个开始的数字,并且您可以将此行为用于测试目的
Random random = new Random(1);
这是用数字1进行种子设定。这意味着每次运行代码时,它都会为nextInt()生成相同的随机数。如果你不给它任何数字作为种子,它就会这样做:
Random random = new Random(System.currentTimeMillis());
但问题是Random.nextInt不是静态方法。您调用:
java.util.Random.nextInt(50);
最好导入要使用的类。这会将此块放在文件的顶部:
import java.util.Random;
并将现有代码更改为:
Random.nextInt(50);
这解决了样式问题,但仍然会出现相同的编译器错误
静态方法是属于某个类的东西;在使用它们之前,不需要您创建(实例化)该类的对象。不是每个类的实例化都有该方法,而是该类的所有实例化实例共享相同的静态方法和变量
具体来说,Random类中的.nextInt()不是静态的;它是一个普通方法。因此它需要一个实例化的Random来处理。这意味着您应该尝试:
Random random = new Random();
random.nextInt(50);
在实例化一个随机变量之后,可以继续对其调用nextInt(),次数可以根据需要而定
数学类中有一个常用的静态方法示例
Math.min(10, 5);
Math.max(100, 100000);
等等
需要实例化Random的原因是它有状态。它不是完全随机的,而是伪随机的,因为它需要一个数字作为开始。如果不给它一个数字,它需要当前时间。两个Java随机对象在完全相同的时刻初始化……将产生相同的“随机”数字序列
这实际上是很有用的;您可以给它们随机对象一个开始的数字,并且您可以将此行为用于测试目的
Random random = new Random(1);
这是用数字1进行种子设定。这意味着每次运行代码时,它都会为nextInt()生成相同的随机数。如果你不给它任何数字作为种子,它就会这样做:
Random random = new Random(System.currentTimeMillis());
但问题是Random.nextInt不是静态方法。您调用:
java.util.Random.nextInt(50);
最好导入要使用的类。这会将此块放在文件的顶部:
import java.util.Random;
并将现有代码更改为:
Random.nextInt(50);
这解决了样式问题,但仍然会得到相同的编译器