HELP!! My program cannot work for float array

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • huiling25
    New Member
    • Dec 2006
    • 35

    HELP!! My program cannot work for float array

    My program works alright for integer array, but not float array. How can I change the program so that I can get the original position of each element in the float array after sorting? Let's say my float array is {5.0f,10.0f,1.0 f,15.0f}.
    Here's my code:
    Code:
    import java.util.*;
    
    public class SortArrays
    {
    	public static void main(String args[])
    	{
    		Integer[] score = {5, 10, 0, 1, 15};
    
    		ArrayList Values = new ArrayList();
    		HashMap OriginalPos = new HashMap();
    
    		for(int i=score.length-1;i>=0;i--)
    		{
    			OriginalPos.put(new Integer(score[i]), new Integer(i));
    			Values.add(new Integer(score[i]));
    		}
    	
    		Collections.sort(Values);
    
    		for(int i=Values.size()-1;i>=0;i--)
    		{
    			int val = ((Integer)(Values.get(i))).intValue();
    			System.out.print("" + val + "    ");
    			System.out.println(OriginalPos.get(new Integer(val)));
    		}
    	}
    }
  • r035198x
    MVP
    • Sep 2006
    • 13225

    #2
    Originally posted by huiling25
    My program works alright for integer array, but not float array. How can I change the program so that I can get the original position of each element in the float array after sorting? Let's say my float array is {5.0f,10.0f,1.0 f,15.0f}.
    Here's my code:
    Code:
    import java.util.*;
     
    public class SortArrays
    {
    	public static void main(String args[])
    	{
    		Integer[] score = {5, 10, 0, 1, 15};
     
    		ArrayList Values = new ArrayList();
    		HashMap OriginalPos = new HashMap();
     
    		for(int i=score.length-1;i>=0;i--)
    		{
    			OriginalPos.put(new Integer(score[i]), new Integer(i));
    			Values.add(new Integer(score[i]));
    		}
     
    		Collections.sort(Values);
     
    		for(int i=Values.size()-1;i>=0;i--)
    		{
    			int val = ((Integer)(Values.get(i))).intValue();
    			System.out.print("" + val + " ");
    			System.out.println(OriginalPos.get(new Integer(val)));
    		}
    	}
    }
    Remember 1.5 has autoboxing and unboxing. Also make use of generic types

    Code:
     import java.util.*; 
    public class SortArrays {
     public static void main(String args[]) {
      Float[] score = {5.0f, 10.0f, 0.0f, 1.0f, 15.0f};
      ArrayList<Float> values = new ArrayList<Float>();
      HashMap<Float, Integer> originalPos = new HashMap<Float, Integer>();
      for(int i=score.length-1;i>=0;i--) {
       originalPos.put(score[i], i);
       values.add(score[i]);
      }
      Collections.sort(values);
      for(int i = values.size()-1; i >= 0; i--) {
       float val = values.get(i);//No need for typecasting
       System.out.print("" + val + "	");
       System.out.println(originalPos.get(val));
      }
     }
    }

    Comment

    • huiling25
      New Member
      • Dec 2006
      • 35

      #3
      Originally posted by r035198x
      Remember 1.5 has autoboxing and unboxing. Also make use of generic types

      Code:
       import java.util.*; 
      public class SortArrays {
       public static void main(String args[]) {
        Float[] score = {5.0f, 10.0f, 0.0f, 1.0f, 15.0f};
        ArrayList<Float> values = new ArrayList<Float>();
        HashMap<Float, Integer> originalPos = new HashMap<Float, Integer>();
        for(int i=score.length-1;i>=0;i--) {
         originalPos.put(score[i], i);
         values.add(score[i]);
        }
        Collections.sort(values);
        for(int i = values.size()-1; i >= 0; i--) {
         float val = values.get(i);//No need for typecasting
         System.out.print("" + val + "	");
         System.out.println(originalPos.get(val));
        }
       }
      }
      Thanks for the solution, it works now.

      Comment

      • r035198x
        MVP
        • Sep 2006
        • 13225

        #4
        Originally posted by huiling25
        Thanks for the solution, it works now.
        Anytime, huiling25. One day I shall ask what your user name means.

        Comment

        Working...