How do I fill an array with consecutive numbers
Asked Answered
M

7

15

I would like to fill an array using consecutive integers. I have created an array that contains as much indexes as the user enters:

Scanner in = new Scanner(System.in);
int numOfValues = in.nextInt();

int [] array = new int[numOfValues];

How do i fill this array with consecutive numbers starting from 1? All help is appreciated!!!

Menispermaceous answered 13/2, 2015 at 1:3 Comment(1)
Please use proper naming conventions. Make it numOfValues. Classes start with a capital letter, not variablesRoxannroxanna
F
44

Since Java 8

//                               v end, exclusive
int[] array = IntStream.range(1, numOfValues + 1).toArray();
//                            ^ start, inclusive

The range is in increments of 1. The javadoc is here.

Or use rangeClosed

//                                     v end, inclusive
int[] array = IntStream.rangeClosed(1, numOfValues).toArray();
//                                  ^ start, inclusive
Filippo answered 13/2, 2015 at 1:7 Comment(0)
P
4

The simple way is:

int[] array = new int[NumOfValues];
for(int k = 0; k < array.length; k++)
    array[k] = k + 1;
Pentagram answered 13/2, 2015 at 1:6 Comment(0)
H
2
for(int i=0; i<array.length; i++)
{
    array[i] = i+1;
}
Hypothecate answered 13/2, 2015 at 1:7 Comment(0)
H
1
int[] arr = new int[5];
Arrays.setAll(arr, i -> 2 + i);
// arr ==> int[5] { 2, 3, 4, 5, 6 }
Haply answered 15/12, 2023 at 8:42 Comment(0)
D
0

You now have an empty array

So you need to iterate over each position (0 to size-1) placing the next number into the array.

for(int x=0; x<NumOfValues; x++){ // this will iterate over each position
     array[x] = x+1; // this will put each integer value into the array starting with 1
}
Diva answered 13/2, 2015 at 1:7 Comment(0)
G
0

One more thing. If I want to do the same with reverse:

int[] array = new int[5];
        for(int i = 5; i>0;i--) {
            array[i-1]= i;
        }
        System.out.println(Arrays.toString(array));
}

I got the normal order again..

Giffer answered 31/7, 2016 at 12:56 Comment(1)
You got the normal order again.. - So? what could we do?Satiety
M
-2
Scanner in = new Scanner(System.in);
int numOfValues = in.nextInt();

int[] array = new int[numOfValues];

int add = 0;

for (int i = 0; i < array.length; i++) {

    array[i] = 1 + add;

    add++;

    System.out.println(array[i]);

}
Menispermaceous answered 13/2, 2015 at 1:5 Comment(1)
While this code may answer the question, providing additional context regarding how and/or why it solves the problem would improve the answer's long-term value.Bakken

© 2022 - 2024 — McMap. All rights reserved.