ranaarjun ranaarjun - 2 months ago 17
Java Question

Possible Lossy conversion from long to int

I wish to enter one

int
and another
long
ex: 1 and 1000000000, and now I wish to create an array of size 1000000000. And then at each index of array, store int val, ex:
arr[100000000] = 4
.

When I'm trying to do this Netbeans shows me an error in this line:

arr = new long[y+1]` and `arr[j] = 0`



"Possible Lossy conversion from long to int".
Here's my code:-


public static void main(String[] args) throws IOException
{
BufferedReader s = new BufferedReader(new InputStreamReader(System.in));
String[] xe = s.readLine().split(" ");
int x = Integer.parseInt(xe[0]);
long y = Long.parseLong(xe[1]);
long []arr;
arr = new long[y+1];
for(long j=0;j<=y;j++)
arr[j] = 4;
}

Answer

Array index is an integer in Java and the compiler will advice you. So maximum array size is (aproximately) Integer.MAX_VALUE. For bigger arrays you should use ArrayList.

To go around this dirt&quick

arr = new long[(int)y+1];