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)
Se istanziassi mappa come new Map , il put non funzionerebbe .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); } }
Grazie per eventual i risposte.

Rispondi quotando

