I created a simple Node.java class, where each Node instance has an
1-id variable of type int
2-Neighborlist of type Arraylist

I wrote a code that gives me a random network, made of 200 nodes, and each node can have up to 55 neighbors.

``````for(i=0; i <200; i++ ) // this is to generate 200 nodes
{
Node n = new Node();
n.id (i);
for (j=0; j<10; j++) // to put an upper bound on the number of neighbors
{
idx= randomGenerator.nextInt(200);
if (idx>=50 && idx!=i))   // 50 is a random number that ive chosen
{
// Add this node to the one hop neighbors of i
}

//Add node i to the network
}// end``````

The problem is that this code might produce nodes that have duplicates neighbors. Is there an efficient way to prevent duplicates in the neighbor list of each node ? i was thinking to loop over the neighbor list before adding an idx and make sure that it is not there before adding it...but is there any more efficient way to do that ?

4
Contributors
6
Replies
7
Views
7 Years
Discussion Span
Last Post by jon.kiparsky

Generate a list of numbers, pick an index from this list, then delete it.

even if i generate a random list, i might get 2 or more elements that are the same...

no, not a random list. Just a list of say 1..100 and pick at random from those.

i dont see where i can integrate this in my code..

or put that to some of Set because doesn't allows duplicates

i dont see where i can integrate this in my code..

If I understand priteas, he's suggesting you make an arraylist of Integer, populate it with integers in the range you want, and remove(randomIndex) for your random numbers, randomIndex being a random int in the range (0..arraylist.size())
Instead of `idx = (generated random number)` , you'd have `idx = arrayList.remove(generated random number (0..arraylist.size()))` Simple.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.