有没有办法使用 obj.add(i,random.nextInt(MAX_RAND_NUM)); 将值添加到向量中?然后打印出这些值?
is there a way to have values added to a vector using obj.add(i,random.nextInt(MAX_RAND_NUM)); and then printing the values out?
我有以下代码,对于 Vector 部分,使用 'obj.add(i,random.nextInt(MAX_RAND_NUM));' 时没有数字被添加到 Vector 数组。最后'[]'的输出证实了这一点。问题似乎始于 'System.out.println("" + i + ": " + obj.get(i));' 未打印 'obj.get(i)'.
的值
输出:
FEC - Arrays
==> Using Java Array
0: 12
1: 24
2: 93
3: 52
4: 43
5: 2 <== smallest
6: 24
7: 19
8: 39
9: 64
Using java.util.ArrayList
Sorted Array:
[2, 12, 19, 24, 24, 39, 43, 52, 64, 93]
=================
==> Using java.util.Vector
Using java.util.Vector
Sorted Vector:
[]
代码:
import java.util.Vector;
import java.util.ArrayList;
import java.util.Collections;
class Main {
static final int ARRAY_SIZE = 10;
static final int MAX_RAND_NUM = 100;
public static void main(String[] args) {
System.out.println("FEC - Arrays");
System.out.println("==> Using Java Array");
int[] nums = new int[ARRAY_SIZE];
java.util.Random random = new java.util.Random();
int smallest = MAX_RAND_NUM;
for (int i = 0; i < nums.length; i++) {
nums[i] = random.nextInt(MAX_RAND_NUM);
if (nums[i] < smallest) {
smallest = nums[i];
}
}
for (int i = 0; i < nums.length; i++) {
System.out.print("" + i + ": " + nums[i]);
if (nums[i] == smallest) {
System.out.print(" <== smallest");
}
System.out.println();
}
// Sort the Array
System.out.println("Using java.util.ArrayList");
System.out.println("Sorted Array:");
java.util.Arrays.sort(nums);
System.out.println(java.util.Arrays.toString(nums));
System.out.println("=================");
System.out.println("==> Using java.util.Vector");
// YOUR CODE HERE
smallest = MAX_RAND_NUM;
Vector<Integer> obj = new Vector<Integer>(ARRAY_SIZE);
// obj.add(0,random.nextInt(MAX_RAND_NUM));
// System.out.println(obj.get(0));
for(int i = 0; i < obj.size(); i++)
{
obj.add(i,random.nextInt(MAX_RAND_NUM));
if (obj.get(i) < smallest)
{
smallest = obj.get(i);
}
}
for (int i = 0; i < obj.size(); i++) {
System.out.println("" + i + ": " + obj.get(i));
if (obj.get(i) == smallest)
{
System.out.print(" <== smallest");
}
System.out.println();
}
// Sort the Vector
System.out.println("Using java.util.Vector");
System.out.println("Sorted Vector:");
Collections.sort(obj);
System.out.println(obj);
}
}
初始化后 Vector
的大小为 0
,因为没有元素;你的循环条件应该与 ARRAY_SIZE
而不是 obj.size()
.
进行比较
for(int i = 0; i < ARRAY_SIZE; i++){
// add elements
}
下面的循环体永远不会执行,因为 obj.size 是 0。
ERROR
|
V
for(int i = 0; i < obj.size(); i++)
{
obj.add(i,random.nextInt(MAX_RAND_NUM));
if (obj.get(i) < smallest)
{
smallest = obj.get(i);
}
}
而是使用 ARRAY_SIZE。
for(int i = 0; i < ARRAY_SIZE; i++)
{
obj.add(i,random.nextInt(MAX_RAND_NUM));
if (obj.get(i) < smallest)
{
smallest = obj.get(i);
}
}
我有以下代码,对于 Vector 部分,使用 'obj.add(i,random.nextInt(MAX_RAND_NUM));' 时没有数字被添加到 Vector 数组。最后'[]'的输出证实了这一点。问题似乎始于 'System.out.println("" + i + ": " + obj.get(i));' 未打印 'obj.get(i)'.
的值输出:
FEC - Arrays
==> Using Java Array
0: 12
1: 24
2: 93
3: 52
4: 43
5: 2 <== smallest
6: 24
7: 19
8: 39
9: 64
Using java.util.ArrayList
Sorted Array:
[2, 12, 19, 24, 24, 39, 43, 52, 64, 93]
=================
==> Using java.util.Vector
Using java.util.Vector
Sorted Vector:
[]
代码:
import java.util.Vector;
import java.util.ArrayList;
import java.util.Collections;
class Main {
static final int ARRAY_SIZE = 10;
static final int MAX_RAND_NUM = 100;
public static void main(String[] args) {
System.out.println("FEC - Arrays");
System.out.println("==> Using Java Array");
int[] nums = new int[ARRAY_SIZE];
java.util.Random random = new java.util.Random();
int smallest = MAX_RAND_NUM;
for (int i = 0; i < nums.length; i++) {
nums[i] = random.nextInt(MAX_RAND_NUM);
if (nums[i] < smallest) {
smallest = nums[i];
}
}
for (int i = 0; i < nums.length; i++) {
System.out.print("" + i + ": " + nums[i]);
if (nums[i] == smallest) {
System.out.print(" <== smallest");
}
System.out.println();
}
// Sort the Array
System.out.println("Using java.util.ArrayList");
System.out.println("Sorted Array:");
java.util.Arrays.sort(nums);
System.out.println(java.util.Arrays.toString(nums));
System.out.println("=================");
System.out.println("==> Using java.util.Vector");
// YOUR CODE HERE
smallest = MAX_RAND_NUM;
Vector<Integer> obj = new Vector<Integer>(ARRAY_SIZE);
// obj.add(0,random.nextInt(MAX_RAND_NUM));
// System.out.println(obj.get(0));
for(int i = 0; i < obj.size(); i++)
{
obj.add(i,random.nextInt(MAX_RAND_NUM));
if (obj.get(i) < smallest)
{
smallest = obj.get(i);
}
}
for (int i = 0; i < obj.size(); i++) {
System.out.println("" + i + ": " + obj.get(i));
if (obj.get(i) == smallest)
{
System.out.print(" <== smallest");
}
System.out.println();
}
// Sort the Vector
System.out.println("Using java.util.Vector");
System.out.println("Sorted Vector:");
Collections.sort(obj);
System.out.println(obj);
}
}
初始化后 Vector
的大小为 0
,因为没有元素;你的循环条件应该与 ARRAY_SIZE
而不是 obj.size()
.
for(int i = 0; i < ARRAY_SIZE; i++){
// add elements
}
下面的循环体永远不会执行,因为 obj.size 是 0。
ERROR
|
V
for(int i = 0; i < obj.size(); i++)
{
obj.add(i,random.nextInt(MAX_RAND_NUM));
if (obj.get(i) < smallest)
{
smallest = obj.get(i);
}
}
而是使用 ARRAY_SIZE。
for(int i = 0; i < ARRAY_SIZE; i++)
{
obj.add(i,random.nextInt(MAX_RAND_NUM));
if (obj.get(i) < smallest)
{
smallest = obj.get(i);
}
}