Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Copy contents of an int array to a double array in Java?

I'm trying to copy the contents of my int array into an array of type double. Do I have to cast them first?

I successfully copied an array of type int to another array of type int. However now I want to write code that would copy contents from Array A to Array Y (int to double).

Here is my code:

public class CopyingArraysEtc {

    public void copyArrayAtoB() {
        double[] x = {10.1,33,21,9},y = null;
        int[] a = {23,31,11,9}, b = new int[4], c;

        System.arraycopy(a, 0, b, 0, a.length);

        for (int i = 0; i < b.length; i++)
        {
            System.out.println(b[i]);
        }

    }          

    public static void main(String[] args) {
        //copy contents of Array A to array B
        new CopyingArraysEtc().copyArrayAtoB();
    }
}
like image 431
binary101 Avatar asked Oct 04 '12 14:10

binary101


1 Answers

You can iterate through each element of the source and add them to the destination array. You don't need an explicit cast going from int to double because double is wider.

int[] ints = {1, 2, 3, 4};
double[] doubles = new double[ints.length];
for(int i=0; i<ints.length; i++) {
    doubles[i] = ints[i];
}

You can make a utility method like this -

public static double[] copyFromIntArray(int[] source) {
    double[] dest = new double[source.length];
    for(int i=0; i<source.length; i++) {
        dest[i] = source[i];
    }
    return dest;
}
like image 53
Bhesh Gurung Avatar answered Sep 17 '22 22:09

Bhesh Gurung