ho provato questa strada:
codice:
import java.util.*;
public class es{
private static List<Integer> probabilita = new ArrayList<Integer>();
private static Map <Integer,Integer> mappa = new HashMap <Integer,Integer>();
private static int estratto=0;
private static final int LIMITE=100;
public static void main(String[]args){
//metto le probabilita e i valori nell'hashMap(probabilita, valore)
mappa.put(70,150);
mappa.put(10,50);
mappa.put(20,100);
//inserisco le probabilita nell'arraylist
probabilita.add(70);
probabilita.add(10);
probabilita.add(20);
//creo il numero random
Random random = new Random();
estratto = random.nextInt(LIMITE);
System.out.println("Numero random: "+estratto);
//ordino la lista delle probabilita
Collections.sort(probabilita);
for(int i = 0; i < probabilita.size();i++){
int corrente = probabilita.get(i);
if(estratto<=corrente){
System.out.println("Numero estratto:"+mappa.get(corrente)+" con probabilita del "+corrente+"%");
break;
}
}
}
}
sicuramente non è la soluzione migliore e non funziona neanche bene, ho dovuto mettere quel bruttissimo break dentro l'if altrimentri mi beccava anche l'intervallo successivo. Cosi come è, se esce un numero nell'ultimo intervallo tra il 71 e 100 non lo considera