hashmap

Mattepuffo's logo
Usare le HashMap in Rust

Usare le HashMap in Rust

Le HashMap in Rust sono collezioni di dati in formato chiave:valore, in cui non è possibile inserire due item con la stessa chiave.

In sostanza la chiave deve essere univoca.

Inoltre i dati vengono inseriti in ordine arbitrario; come vedremo quando li stamperemo a video, non saranno messi in ordine di inserimento.

Mattepuffo's logo
Usare le mappe in Kotlin

Usare le mappe in Kotlin

Kotlin supporta tutti i tipi di collezione di Java.

Oggi vediamo qualche esempio di uso delle mappe.

Kotlin supporta sia mappe mutabili che immutabili (che sono quelle create di "default").

Mattepuffo's logo
Iterare una HashMap in Java

Iterare una HashMap in Java

In Java iterare su una HashMap è uun pò diverso che iterare su una semplice lista.

Ci sono diversi modi per farlo, ma io vi posto direttamente quello che uso che mi piace di più!

Mattepuffo's logo
Ordinare una ListView in Android

Ordinare una ListView in Android

Abbiamo visto come riempire una ListView in Android usando dati in formato JSON.

Solo che la lista risulta "statica" nel senso che come ci arriva la leggiamo, e non possiamo ordinarla.

Qui vediamo proprio questo: come ordinare una ListView simulando una tabella con righe e colonne.

Partiamo dalla Activity principale:

public class MainActivity extends Activity {
    
    private TextView txtTitolo = null;
    private TextView txtCreazione = null;
    private ListView listView = null;
    private SimpleAdapter adapter = null;
    private ArrayList> list = new ArrayList>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setLista();
        txtTitolo = (TextView) findViewById(R.id.h_titolo);
        txtCreazione = (TextView) findViewById(R.id.h_creazione);
        txtTitolo.setOnClickListener(new ListSort(list, "titolo", adapter));
        txtCreazione.setOnClickListener(new ListSort(list, "creazione", adapter));
    }
    
    private void setLista() {
        try {
            listView = (ListView) findViewById(R.id.lista_articoli);
            JSONArray jsonArray = new JSONArray(JsonFile.read(path + "blog_articoli.json"));
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jo = jsonArray.getJSONObject(i);
                HashMap map = new HashMap();
                map.put("id", jo.getString("id"));
                map.put("titolo", jo.getString("titolo"));
                map.put("creazione", jo.getString("creazione"));
                map.put("modifica", jo.getString("modifica"));
                map.put("count", jo.getString("count"));
                list.add(map);
            }
            adapter = new SimpleAdapter(this, list, R.layout.rows,
                    new String[] { "titolo", "creazione", "modifica", "count" },
                    new int[] { R.id.titolo, R.id.creazione, R.id.modifica, R.id.count });
            listView.setAdapter(adapter);
        } catch (JSONException e) {
        } catch (Exception e) {
        }
    }

}

Tralascio tutta la parte del recupero dati, partendo che l'abbiate già messa a punto (quella parte non cambia).