Witam wszystkich forumowiczów. W końcu nadszedł dzień, w ktorm postanowiłem poprosić o pomoc w zadanku. Problem wydawał mi się prosty, jednak nie potrafie wymyślec algorytmu...
Sytuacja przedstawia się tak: mam HashMap<Int1, Int2> tworze nową mapę i chcę aby w niej wartosci i klucze były odwrotne niż w bazowej hashmapie. Czyl HashMap<Int2, Int1>.
Oto cały mój kod, łącznie z komentarzami bo cały czas testuje....Macie może jakiś pomysł jak rozwiązać powyższe zagadnienie ?
package TestKolokwium_1;
import java.util.*;
//import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;
public class Test {
public static void main(String[] args) {
//Napisz program, który z kolekcji HashMap<Integer,Integer> stworzy nową mapę, gdzie klucze i wartości są zamienione miejscami.
Map <Integer,Integer> hashmap = new HashMap<Integer, Integer>();
hashmap.put(1,201);
hashmap.put(2,202);
hashmap.put(3,203);
hashmap.put(4,204);
hashmap.put(5,205);
hashmap.put(6,206);
hashmap.put(7,207);
hashmap.put(8,208);
hashmap.put(9,209);
System.out.println(hashmap);
Set<Integer> klucze = hashmap.keySet();
System.out.println(klucze);
Collection<Integer> wartosci = hashmap.values();
System.out.println(wartosci);
//////// mapa K-kolekcja i V-set == duzy 1 klucz i duza 1 wartosc//////////////
// Map <Collection, Set> hashmap2 = new HashMap<Collection, Set>();
// hashmap2.put(wartosci,klucze);
Map<Integer,Integer> hashmap2 = new HashMap<Integer,Integer>();
for(int j = 0 ; j < klucze.size() ; j++ ) {
for(int i = 0 ; i < wartosci.size() ; i++ ){
if(i==j){
hashmap2.put( klucze.add(j), wartosci.get(i) );
}
}
}
System.out.println(hashmap2);
}
}