Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java - iterate a for loop in a given order

In Bash, if I wanted to iterate through elements of an array in a given order, I could do so like this:

    for i in 1 3 8 2 5 9; do
        array[i] = <some_algorithm_based_value>
    done

Is it possible to do the same (or relatively the same) thing in Java?

like image 976
soupmagnet Avatar asked Aug 18 '13 05:08

soupmagnet


4 Answers

You can write

for (int i: Arrays.asList(1, 3, 8, 2, 5, 9)) {
    doSomethingWith(array[i]);
}

ADDENDUM: Live demo

like image 139
Ray Toal Avatar answered Nov 19 '22 16:11

Ray Toal


You can try this

  int[] arr= new int[]{1, 3, 8, 2, 5, 9};
    for(int i:arr){
        System.out.println(i);
    }

Out put

1
3
8
2
5
9

Live demo here

FYI: This should work only in jdk 1.7, since early version of jdk can't have a primitive type for each.

So If you are using early version of java. you have to convert int[] to Integer[] You can try this

  int[] arr= new int[]{1, 3, 8, 2, 5, 9};
    Integer[] str=new Integer[arr.length];
    for(int i=0;i<arr.length;i++){
        str[i]=arr[i];
    }
    for(Integer i:arr){
        System.out.println(i);
    }

Out put

1
3
8
2
5
9
like image 3
Ruchira Gayan Ranaweera Avatar answered Nov 19 '22 16:11

Ruchira Gayan Ranaweera


Yes, you can do it this way

    for (int i : new Integer[]{1, 3, 8, 2, 5, 9}) {
        // do something
    }
like image 1
Tony Ennis Avatar answered Nov 19 '22 17:11

Tony Ennis


You can do this:

package com.sandbox;

import java.util.Arrays;

public class Sandbox {

    public static void main(String[] args) {
        for (Integer integer : Arrays.asList(1, 2, 3, 4, 5)) {
            System.out.println(integer);
        }
    }


}

This will print out:

1
2
3
4
5
like image 1
Daniel Kaplan Avatar answered Nov 19 '22 17:11

Daniel Kaplan