Visualizzazione dei risultati da 1 a 2 su 2

Discussione: classe map

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    285

    classe map

    Salve a tutti!
    Una domanda. Non ho capito se la classe Map è una classe astratta o può essere utilizzata direttamente .Ho provato ad utilizzarla ma quando aggiungo (put) un elemento mi genera un errore che segnala che sto aggiungendo un elemento nullo (ma non è così) . Utilizzando invece la classe HashMap , riesco poi a procedere .

    Il programma è questo (giusto a titolo di esempio)
    codice:
    import java.util.*;
    public class Codifica {
     private Map<Character, Character> mappa ;
      public Codifica(){
    	    mappa=new HashMap<Character, Character>();
    		 mappa.put('a', 'd');
    		 mappa.put('b', 'a');
    		 mappa.put('c', 'f');
    		 mappa.put('d', 'r');
    		 mappa.put('e', 'z');
    		 mappa.put('f', 'i');
    		 mappa.put('g', 'l');
    		 mappa.put('h', 'p');
    		 mappa.put('i', 'x');
    		 mappa.put('j', 's');
    		 mappa.put('k', 'b');
    		 mappa.put('l', 'z');
    		 mappa.put('m', 'u');
    		 mappa.put('n', 'c');
    		 mappa.put('o', 'j');
    		 mappa.put('p', 'e');
    		 mappa.put('q', 'g');
    		 mappa.put('r', 'v');
    		 mappa.put('s', 'h');
    		 mappa.put('t', 'y');
    		 mappa.put('u', 'w');
    		 mappa.put('v', 'm');
    		 mappa.put('w', 'o');
    		 mappa.put('x', 'k');
    		 mappa.put('y', 'q');
    		 mappa.put('z', 'n');
      }
     public char applica(char lettera){
    	return mappa.get(lettera); 
     }
     public void getString(String stringa){
    	int size = stringa.length();
    	char[] caratteri = stringa.toCharArray();
    	 for(int i = 0;i<size;i++){
    		 System.out.print(applica(caratteri[i]));
    	 }
    	System.out.println("\r\n---------------------"); 
     }
     public static void main(String[] argv){
    	 Scanner IN = new Scanner(System.in);
    	 System.out.println("inserire stringa");
    	 String str = IN.nextLine();
    	 Codifica cod = new Codifica();
    	 cod.getString(str);
     }
    }
    Se istanziassi mappa come new Map , il put non funzionerebbe .
    Grazie per eventual i risposte.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Map non è una classe, è un'interfaccia.
    E, infatti, non puoi istanziare oggetti Map ma solo oggetti che la implementano (come HashMap), ma come per le classi astratte puoi dichiarare oggetti Map.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.