Results 1 to 2 of 2
  1. #1
    javanubby is offline Member
    Join Date
    Mar 2012
    Posts
    8
    Rep Power
    0

    Question [Need Help]Finding duplicates & replacing w/ non existing random #s!

    Hey guys, I'm new to taking Java and this stuff really stump me. I have mini assignment by my teacher to: *make 2 arrays with 20 random #s, *merge them into a single array, *put new array (of 40 random numbers) and put them in ascending order W/O DUPLICATES, and *make a counter that counts how many times the program goes through a loop.

    The below is my code:
    import javax.swing.JOptionPane;
    public class MergeArrays
    {
    public static void main (String args [])
    {
    int array1 [] = new int [21];
    int array2 [] = new int [21];
    int array3 [] = new int [41];
    String output1 = "";
    String output2 = "";
    String output3 = "";
    for(int a = 1; a <= 20; a++) {
    array1 [a] = (int)(Math.random()*100+1);
    array2 [a] = (int)(Math.random()*100+1); //generating numbers for array1 and array2
    array3 [a] = array1 [a];
    array3 [a+20] = array2 [a]; //combining array1 and array2 into array3
    }
    for(int a = 1; a < 40; a++)
    for(int b = a + 1; b <= 40; b++) {
    if(array3[a] > array3[b]) {
    array3 [0] = array3 [a];
    array3 [a] = array3 [b];
    array3 [b] = array3 [0];
    } //ascending order arranging loop
    if(array3[a] == array3[b]) {
    array3[b] = (int)(Math.random()*100+1);
    } //replace duplicates with new number

    }
    for(int a = 1; a < 20; a++) {
    output1 = output1 + array1[a] + ", ";
    output2 = output2 + array2[a] + ", ";
    } output1 = output1 + array1[20];
    output2 = output2 + array2[20]; //original arrays output loop
    for(int a = 1; a < 40; a++) {
    output3 = output3 + array3[a] + ", ";
    } output3 = output3 + array3[40]; //sorted array output loop

    JOptionPane.showMessageDialog(null, "First Set of 20 #s: " + output1 + "\nSecond Set of 20 #s: " + output2
    + "\nBoth Set Combined(Ascending Order): " + output3,
    "Random Number Generator",
    JOptionPane.PLAIN_MESSAGE);
    }
    }
    I'm having trouble with the non duplicate part, which I highlighted. I'm trying to get the program to print out 40 numbers total in ascending order and non duplicated. This is as far as I've gotten. Output would always be something like this:
    First Set of 20 #s: 38, 21, 100, 14, 54, 11, 31, 85, 38, 25, 43, 20, 77, 25, 39, 78, 30, 61, 82, 62
    Second Set of 20 #s: 17, 98, 67, 42, 58, 64, 7, 62, 75, 87, 20, 52, 63, 23, 48, 54, 43, 70, 35, 9
    Both Set Combined(Ascending Order): 7, 9, 11, 14, 17, 4, 20, 21, 23, 25, 30, 31, 35, 38, 39, 42, 43, 48, 52, 54, 58, 60, 61, 18, 62, 26, 63, 64, 67, 70, 74, 75, 77, 78, 82, 84, 85, 87, 98, 100
    Notice how it's all ascending except for duplicates that was replaced...
    Please tell me what I did wrong and how to correct it, a more efficient method(not anything complicated that a beginner should know), etc. Thank you!

    ALSO: if you know how to make a counter that counts the amount of loops my script has to go through, please share as well! thanks in advance!

  2. #2
    ozzyman's Avatar
    ozzyman is offline Senior Member
    Join Date
    Mar 2011
    Location
    London, UK
    Posts
    797
    Blog Entries
    2
    Rep Power
    4

    Default Re: [Need Help]Finding duplicates & replacing w/ non existing random #s!

    If you put your loop in its own method or class, you could easily increment a counter

    Method counter:
    Java Code:
    int loopCounts = 0;
    public int[] sortArray(int[] array) {
        //loop
        for (...) {
    
        }
        //increment counter
        loopCounts++;
        ...
    }
    Class instance counter (every time an instance is made the counter is incremented):
    Java Code:
    class ArraySorter {
    
        static int sortCount = 0;
    
        int[] sortedArray;
    
        public ArraySorter(int[] unsortedArray) {
            sortCount++;
            sortedArray = sort(unsortedArray);
        }
    
        private int[] sort(int[] unsortedArray) {
            ...
        }
    
    }
    Also, Jos made a good tutorial on this in his blog:
    http://www.java-forums.org/blogs/jos...r-pattern.html



    p.s. use CODE tags not QUOTE tags for your code!
    Last edited by ozzyman; 03-13-2012 at 12:31 AM.

Similar Threads

  1. Random Numbers - finding least value
    By collwill in forum New To Java
    Replies: 16
    Last Post: 03-08-2011, 12:34 AM
  2. Arrays and Replacing Duplicates
    By javaman1 in forum New To Java
    Replies: 1
    Last Post: 02-16-2011, 04:28 PM
  3. Array Help - Finding and replacing duplicate cells
    By javaman1 in forum New To Java
    Replies: 5
    Last Post: 02-05-2011, 05:06 PM
  4. Finding & Returning Duplicates
    By Snowdrift in forum New To Java
    Replies: 9
    Last Post: 01-25-2011, 11:24 AM
  5. [SOLVED] regexs not finding or replacing
    By Nicholas Jordan in forum Advanced Java
    Replies: 7
    Last Post: 07-30-2008, 10:02 PM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •