Primo valore TreeMap

di il
2 risposte

Primo valore TreeMap

Ciao a tutti, sto implementando una classe per calcolare il Crivello di Eratostene (determina tutti i numeri primi esistenti tra 2 ed un massimo positivo N) con una Mappa.
I metodi di questa classe sono:
//inizializzo un TreeMap CRIVELLO con tutti gli interi da 2 a N ed un TreeMap PRIMI (inizialmente vuoto) che conterrà solo i numeri primi
public CrivelloMap(int N) {
crivello = new TreeMap<>();
primi = new TreeMap<>();
if (N < 2)
throw new RuntimeException("N minore di 2");
this.N = N;
int i = 0;
for (int j = 2; j <= N; j++) {
crivello.put(i, j);
i++;
}
System.out.println(crivello);
}

dopo aver fatto questo dovrei trovare il valore "minimo" all'interno di CRIVELLO in modo da aggiungerlo a PRIMI e poi rimuovere "minimo" e tutti i suoi multiplo da CRIVELLO, ma non so come fare
sapreste darmi qualche consiglio?
grazie

2 Risposte

  • Re: Primo valore TreeMap

    Rossella92 ha scritto:


    dovrei trovare il valore "minimo" all'interno di CRIVELLO
    TreeMap ha:

    public Map.Entry<K,V> firstEntry()
    public K firstKey()

    (più svariati altri metodi per "navigare" dentro la mappa)
  • Re: Primo valore TreeMap

    L'ho riscritto ma nulla
    public void filtra() {

    while (!crivello.isEmpty()) {
    int chiaveMin = crivello.firstKey();
    int valoreMin=crivello.get(chiaveMin);
    primi.put(chiaveMin, valoreMin);

    int multiplo = valoreMin;
    while (multiplo <= N) {
    crivello.remove(chiaveMin,valoreMin);
    multiplo += valoreMin;
    }
    }
    System.out.println(primi);

    }

    public static void main(String[] args) {
    Crivello cM = new CrivelloMap(100);
    cM.filtra();
    System.out.println(cM);

    }// main
Devi accedere o registrarti per scrivere nel forum
2 risposte