4 Replies Latest reply: Apr 24, 2007 2:27 PM by 807599 RSS

    Errors in Map class

    807599
      Hello Everyone.

      Well I working on a program that uses Map class and I have some errors.
      They are listed as.
      on line 110
      Type safety: The method put(Object, Object) belongs to the raw type HashMap. References to
      generic type HashMap<K,V> should be parameterized

      line 115
      pe safety: The expression of type Collection needs unchecked conversion to conform to
      Collection<ComputerInvent>

      line 123
      Type mismatch: cannot convert from Object to Computer_listing

      Here is my code is far
      import java.io.*;
      import java.util.*;
      
      class Computer_listing {
      
           private String id;
      
           private String name;
      
           private Integer harddrive;
      
           private Integer memory;
      
           private float speed;
      
           public Computer_listing(String idx) {
                id = idx;
           }// close the computer_listing loop
      
           /**
            * Constructors.
            */
      
           public Computer_listing(String cd, String cn, Integer hd, Integer me,
                     float sp) {
                id = cd;
                name = cn;
                harddrive = hd;
                memory = me;
                speed = sp;
      
           }// close public EmployeeClass
      
           /*
            * accessors make info available
            */
           public String getId() {
                return id;
           }
      
           public String getName() {
                return name;
           }
      
           public Integer getHardrive() {
                return harddrive;
           }
      
           public Integer getMemory() {
                return memory;
           }
      
           public float getSpeed() {
                return speed;
           }
      
           /*
            * Mutator Methods
            */
           public void setId(String cd) {
                id = cd;
           }
      
           public void setName(String cn) {
                name = cn;
           }
      
           public void setHarddrive(Integer hd) {
                harddrive = hd;
           }
      
           public void setMemory(Integer me) {
                memory = me;
           }
      
           public void setSpeed(float sp) {
                speed = sp;
           }
      
      }// close class
      
      public class ComputerInvent {
      
           public static void main(String[] args) {
                HashMap hs = new HashMap();
                Scanner kbd = new Scanner(System.in);
                kbd.useDelimiter("\n");
      
                while (true) {
                     String msg = null;
                     Computer_listing compdb = null;
                     System.out.println("Enter ComputerID - Stop to end");
                     msg = kbd.next();
                     if (msg.equalsIgnoreCase("STOP")) {
                          break;
                     } else {
                          compdb = new Computer_listing(msg);
                     }
                     System.out.println("Enter Computer Name");
                     compdb.setId(kbd.next());
                     System.out.println("Enter HardDrive");
                     compdb.setHarddrive(kbd.nextInt());
                     System.out.println("Enter Memory");
                     compdb.setMemory(kbd.nextInt());
                     System.out.println("Enter Speed");
                     compdb.setSpeed(kbd.nextFloat());
                     // add to data structure
                     hs.put(msg, hs); //line 110
      
                }// close while loop
                System.out.println("Done");
                int i = 1;
                Collection<ComputerInvent> values = hs.values();//line115
                for (ComputerInvent temp : values) {
                     System.out.println("Items are " + i + "" + temp.getClass());
                     i++;
                }// close for loop
                System.out.println("Enter ID to find");
                String findit = kbd.next();
                Computer_listing x = null;
                if ((x = hs.get(findit)) != null) { //line 123
                     System.out.println("Found it");
                     System.out.println("Name is " + x.getClass());
                } else {
                     System.out.println("Did not find it");
      
                }// close else
      
           }// close public static void
      }// close public class ComputerInvent
      Can someone please help me in solving this.
      thanks
      sandyR
        • 1. Re: Errors in Map class
          807599
          You are not using generics. You don't have to, but they are good to know about:

          http://java.sun.com/docs/books/tutorial/extra/generics/index.html
          • 2. Re: Errors in Map class
            rahul_akkina
            The code should have thrown hundreds of errors i wonder how u managed with few
            import java.io.*;
            import java.util.*;
             
            class Computer_listing {
             
                 private String id;
             
                 private String name;
             
                 private Integer harddrive;
             
                 private Integer memory;
             
                 private float speed;
             
                 public Computer_listing(String idx) {
                 
                          this.id = idx;
            
                 }
             
             
                 public Computer_listing(String cd, String cn, Integer hd, Integer me,
                           float sp) {
                      this.id = cd;
                      this.name = cn;
                      this.harddrive = hd;
                      this.memory = me;
                      this.speed = sp;
             
                 }
             
                 public String getId() {
            
                      return this.id;
            
                 }
             
                 public String getName() {
            
                      return this.name;
            
                 }
             
                 public Integer getHardrive() {
            
                      return this.harddrive;
            
                 }
             
                 public Integer getMemory() {
            
                      return this.memory;
            
                 }
             
                 public float getSpeed() {
            
                      return this.speed;
            
                 }
             
                 public void setId(String cd) {
            
                      this.id = cd;
                 }
             
                 public void setName(String cn) {
                 
                         this.name = cn;
            
                 }
             
                 public void setHarddrive(Integer hd) {
            
                      this.harddrive = hd;
            
                 }
             
                 public void setMemory(Integer me) {
            
                      this.memory = me;
            
                 }
             
                 public void setSpeed(float sp) {
            
                      this.speed = sp;
            
                 }
            
             
            }
             
            
            public class ComputerInvent{
            
            
              public static void main(String s[]){
            
                     HashMap<String,Computer_listing> hs = new HashMap<String,Computer_listing>();
            
                     Scanner kbd = new Scanner(System.in);
                     kbd.useDelimiter("\n");
            
                       while(true){  
            
                           String msg = null;
                           Computer_listing compdb = null;
                            
                            System.out.println("Enter <ComputerID> - Type <Stop> to end");
                            msg = kbd.next();
            
                            if (msg.equalsIgnoreCase("STOP")) 
                        break;
                             else
                        compdb = new Computer_listing(msg);
                           
                            System.out.println("Enter Computer Name:");
                      compdb.setId(kbd.next());
            
                      System.out.println("Enter HardDrive:");
                      compdb.setHarddrive(kbd.nextInt());
            
                      System.out.println("Enter Memory:");
                      compdb.setMemory(kbd.nextInt());
            
                      System.out.println("Enter Clock Speed:");
                      compdb.setSpeed(kbd.nextFloat());                 
            
                            hs.put(msg,compdb);
                               
                      }
            
                      System.out.println("<Done>");
            
                      Collection<Computer_listing> values = hs.values();
                      int i = 0; 
            
                      for (Computer_listing temp : values) {
            
                           System.out.println("Name["+ i + "]:" + temp.getName());
                           i++;
            
                      }
             
                      System.out.println("Enter ID to find");
                   String findit = kbd.next();
            
                      Computer_listing x = null;
                     
                         if ((x = hs.get(findit)) != null) { 
            
                           System.out.println("Found it");
                           System.out.println("Name is " + x.getName());
            
                      } else {
            
                           System.out.println("Did not find it");
             
                      }         
               
            
              } 
            
            
            }
            Hope that works :)

            Anyways i'd advice you learn basics of using java.util Classes first and then go about using generics if you are a starter.

            REGARDS,
            RaHuL
            • 3. Re: Errors in Map class
              807599
              Thanks Rahul,
              I was re-read the info on data structures and now it make sense.


              sandyR
              • 4. Re: Errors in Map class
                807599
                Thanks for the help but now I get a scanner error when I run it

                The errors above have been fixted but now the scanner is wrong when I run the program
                An error will show up on these
                error code is.

                     at java.util.Scanner.next(Scanner.java:1431)
                     at java.util.Scanner.nextFloat(Scanner.java:2267)
                     at computerInv.ComputerInvent.main(ComputerInvent.java:128)
                System.out.println("Enter HardDrive");// this is line 128
                compdb.setHarddrive(kbd.nextInt());
                System.out.println("Enter Memory");//if I take out line 128 and 129 I get the same error 
                compdb.setMemory(kbd.nextInt());
                System.out.println("Enter Speed");//like wise on this one
                compdb.setSpeed(kbd.nextFloat());
                Can you please tell me why and or show me how to correct this.

                thanks