Is it possible to index ArrayLists? I want to have a number of ArrayLists each consisting of a vector....

ArrayList al = new ArrayList();

for (int k=0; k<Bins;k++)

{

al[k] = new vector();

for (int l=k*Binsize;l<(k*Binsize)+Binsize;l++)

{

al[k].add(Entry[l]);

}

}

To attempt to clarify the above, Entry[] is an array of integers. I want to split that array up into 'Bins', each of which consists of a vector of entries from the array. So, if Entry[6] = {1 2 3 4 5 6), and I want 3 Bins, I want to create 3 ArrayLists consisting of vectors so that al[0] is a vector {1 2}, al[1] is a vector {3 4} and al[2] is a vector {5 6}. I want to use vectors because I'll be doing a lot of mathematical comparison and merging and vectors/ArrayLists seem like the friendliest animals to manipulate in this way.

If I haven't confused you to the point of causing you to scream at your monitor and throw things at your pets, I'd greatly appreciate any help. Thanks.

Jason

ArrayList al = new ArrayList();

for (int k=0; k<Bins;k++)

{

al[k] = new vector();

for (int l=k*Binsize;l<(k*Binsize)+

{

al[k].add(Entry[l]);

}

}

To attempt to clarify the above, Entry[] is an array of integers. I want to split that array up into 'Bins', each of which consists of a vector of entries from the array. So, if Entry[6] = {1 2 3 4 5 6), and I want 3 Bins, I want to create 3 ArrayLists consisting of vectors so that al[0] is a vector {1 2}, al[1] is a vector {3 4} and al[2] is a vector {5 6}. I want to use vectors because I'll be doing a lot of mathematical comparison and merging and vectors/ArrayLists seem like the friendliest animals to manipulate in this way.

If I haven't confused you to the point of causing you to scream at your monitor and throw things at your pets, I'd greatly appreciate any help. Thanks.

Jason

import java.util.*;

public class Example

{

public static void main(String[] args)

{

int[] values = new int[]{1,2,3,4,5,6};

//Number of bins and bin size

int binCount = 3;

int binSize = 2;

//Bin holder

ArrayList<Vector<Integer>>

//Create bins

for(int i=0;i<binCount;i++)

{

//Create vector

Vector<Integer> vec = new Vector<Integer>();

//Fill vector

for(int k=0;k<binSize;k++)

vec.add(values[i*binSize+k

//Add new vector

all.add(vec);

}

//Print result

for(Vector<Integer> vec : all)

{

System.out.print("{ ");

for(Integer val : vec)

System.out.print(val+" ");

System.out.println("}");

}

}

}

Mark

In your example, how would I go about accessing the 3rd entry in the 2nd vector in the ArrayList all? I need to do element-by-element comparisons of neighboring vectors...would something like the following be kosher:

for (k = 0; k < binCount; k++)

{

myArrayList.add(new Vector());

myArrayList.get(k);

for (l =k*Binsize;l<(k*Binsize)+B

myArrayList.get(k).add(wor

}

Then once you've filled the vectors in the ArrayList, can you compound the .get, to specify vector elements, i.e. myArrayList.get(k).get(vec

Finally, how do I test for the existence of a vector in the ArrayList prior to doing comparison actions? I'm thinking of something along the lines of

for (int g=0;g<AL.size();g++)

{

//If this IF is false, then you're at the end of the List

//You'll have already computed the Chi2 value for this vector, i, with its neighbor, i-1

if (AL.get(g+1) != null)

{

....

}

}

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.

>> Can you compound the .get, to specify vector elements, i.e. myArrayList.get(k).get(vec

Yes.

Mark