Advanced   Java   Services JAVA-Praktikum Back Next Up Home
Zahlen in einem Vector speichern (Lösung)

Lösung ohne Autoboxing und ohne Generics

import java.util.*;

public class Insert
{
   public static void main(String[] args)
   {

      int input;
      Vector v = new Vector();

      System.out.println("Zahlen eingeben (ende mit negativer zahl)");

      while( (input = Stdin.intEingabe()) >=0 )
      {
         if(v.size()==0)
            v.add( new Integer(input) );
         else
            for(int i=0; i<v.size(); i++)
            {
               Integer elem = (Integer)v.get(i);
               if(elem.intValue() >= input)  // einfügstelle suchen
               {
                  //System.out.println("fuege "+ in + " ein an stelle " + i);
                  v.insertElementAt( new Integer(input), i);
                  //printVector(v);
                  break;
               }
               if (i==v.size()-1)
               {
                  //System.out.println("fuege "+ in + " am ende ein, i = " + i);
                  v.add( new Integer(input) );
                  //printVector(v);
                  break;
               }

            }

      }  // end while

      System.out.println("---------------------");
      printVector(v);
   }

   // convenience method for debugging
   public static void printVector(Vector v)
   {
      for(int i=0; i<v.size(); i++)
         System.out.print(v.get(i)+ "\t");
      System.out.println();
   }

}

Lösung mit Auto(un)boxing aber ohne Generics

import java.util.*;

public class Insert2
{
   public static void main(String[] args)
   {
      int input;
      Vector v = new Vector();

      System.out.println("Zahlen eingeben (ende mit negativer zahl)");

      while( (input = Stdin.intEingabe()) >=0 )
      {
         if(v.size()==0)
            v.add(input); // autoboxing
         else
            for(int i=0; i<v.size(); i++)
            {
               Integer elem = (Integer)v.get(i);
               if(elem >= input)  // einfügstelle suchen  auto-unboxing
               {
                  //System.out.println("fuege "+ in + " ein an stelle " + i);
                  v.insertElementAt( input, i);  // autoboxing
                  //printVector(v);
                  break;
               }
               if (i==v.size()-1)
               {
                  //System.out.println("fuege "+ in + " am ende ein, i = " + i);
                  v.add(input);   // autoboxing
                  //printVector(v);
                  break;
               }
            }
      }  // end while

      System.out.println("---------------------");
      printVector(v);
   }

   // convenience method for debugging
   public static void printVector(Vector v)
   {
      for(int i=0; i<v.size(); i++)
         System.out.print(v.get(i)+ "\t");
      System.out.println();
   }
}

Lösung mit Auto(un)boxing und mit Generics

import java.util.*;

public class Insert3
{
   public static void main(String[] args)
   {
      int input;
      Vector<Integer> v = new Vector<Integer>();  // generics
      //Vector<int> v = new Vector<int>();  // das geht nicht !

      System.out.println("Zahlen eingeben (ende mit negativer zahl)");

      while( (input = Stdin.intEingabe()) >=0 )
      {
         if(v.size()==0)
            v.add(input); // autoboxing
         else
            for(int i=0; i<v.size(); i++)
            {
               Integer elem = v.get(i);
               if(elem >= input)  // einfügstelle suchen auto-unboxing
               {
                  //System.out.println("fuege "+ in + " ein an stelle " + i);
                  v.insertElementAt( input, i);  // autoboxing
                  //printVector(v);
                  break;
               }
               if (i==v.size()-1 )
               {
                  //System.out.println("fuege "+ in + " am ende ein, i = " + i);
                  v.add(input);   // autoboxing
                  //printVector(v);
                  break;
               }
            }
      }  // end while

      System.out.println("---------------------");
      printVector(v);
   }

   // convenience method for debugging
   public static void printVector(Vector v)
   {
      for(int i=0; i<v.size(); i++)
         System.out.print(v.get(i)+ "\t");
      System.out.println();
   }
}
Valid XHTML 1.0 Strict top Back Next Up Home