» »

Java - sortiranje 2D tabele

Java - sortiranje 2D tabele

SkIDiver ::

Zanima me kako bi sortiral podatke v 2D tabeli. Namreč moral bi sortirati podatke po stolpcu in poleg bi se morale vrstice prestavljati kot se sortirajo atributi po stolpcih. Sortirat bi moral stringe in integerje.

Sergio ::

Bolj natančno opiši svoj problem. Če imaš različne tipe, potem nimaš array[][] primitivnih tipov.

Bolje razloži, pa ti bomo pomagali.
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.

SkIDiver ::

No da opišem zadevo.

Imamo 3 televizorje. Za vsak televizor je znana; Znamka, Model, Zvok(mono, stereo), Cena in Teža.

Vse skupaj damo v tabelo:

Znamka------Model-------Zvok--------Cena-------Teža
---------------------------------------------------------------------
Sony----------TVSH-------Mono-------64000-------20.5
Grunding----GDCA------Stereo------55314-------35.7
Samsung-----AHSA------Stereo-------52210-------34.8

Takole. To tabelo bi sortiral po teži in sicer padajoče. Se pravi bi imel teže;

35.7
34.8
20.5

Zraven pa bi morali biti vsi podatki iz zgornje nesortirane tabele razvrščeni tako kot pašejo. Primer sortirane tabele po teži-padajoče:

Znamka Model Zvok Cena Teža
---------------------------------------------------------------------
Grunding----GDCA------Stereo------55314-------35.7
Samsung-----AHSA------Stereo-------52210-------34.8
Sony----------TVSH-------Mono-------64000-------20.5

Takole. To mi ni jasno kako bi zrealiziral v javi. Da poleg tega da sortira po stolpcu teža poleg zamenja tud vrednosti v vseh ostalih stolpcih, da ima vsak aparat svoje pravilne vrednosti. Da se le te ne pomešajo.

Zgodovina sprememb…

  • spremenil: SkIDiver ()

Sergio ::

Brez problema.

Tole pišem na pamet, tako da koda ne bo ravno biser.

naredi razred Televizor

public class Televizor implements Comparable
{
  private String znamka;
  private String model;
  private boolean zvok;
  private int cena;
  private double teza;

  Televizor(String znamka, String model, boolean zvok, int cena, double teza)
  {
    this.znamka = znamka;
    this.model = model;
    this.zvok = zvok;
    this.cena = cena;
    this.teza = teza;
  }

  public int compareTo(Object o)
  {
    Televizor t = (Televizor)o;
    
    return (int)(t.teza = this.teza);
  }

  
}



Sedaj si naredil razred Televizor, ki implementira razred Comparable in overrida CompareTo. Bos videl zakaj.

V kodi potem reces
...
Televizor[] teveji = new Televizor[3];
teveji[0] = new Televizor("Grundig", "GDCA", true, 55314, 35.7);
teveji[1] = new Televizor("Sony", "TVSH", false, 64000, 20.5);
teveji[2] = new Televizor("Samsung", "AHSA", true, 52210, 34.8);

Arrays.sort(teveji);
...


Ker imas v razredu Televizor overridano metodo CompareTo, in primerjas tezo, se bo array sortiral po narascajoci tezi.

Za padajoco tezo bos valjda znal narest stvar ;-)

Ker sortiras 1-D array objektov, je to to. Ostane ti samo se izpis, kar lahko naredis tako, da overridas metodo toString() in v zanki klices toString() za vsak teve, ce hoces izpis.


Summa summarum:
Klik
KLIK!!!!
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.

SkIDiver ::

Hvala. Na pol kapiš zdele kaj mi je nardit ja. Matr sem v oblakih da tud razmišlat ne morm normalno:)

Sergio je to iz faxa?

Zgodovina sprememb…

  • spremenil: SkIDiver ()

Sergio ::

To je iz izkušenj. :)
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.

SkIDiver ::

Fajn:D

Jz nucam za fax pa mi je tole neki probleme delalo. No ja. Tvoja rešitev je še bolj na roko pisana pa še komplicirana ni. Sam da se seb spravm mal:D


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Naloga - programiranje v C#

Oddelek: Šola
8847 (622) Skaty
»

[Java] Sortiranje razredov

Oddelek: Programiranje
101183 (930) Spura
»

c# primerjava vrednosti dveh tipov object (brez da vem kateri tip sta)

Oddelek: Programiranje
10934 (721) Looooooka
»

[Java] Sortiranje objektov

Oddelek: Programiranje
192513 (2513) tjaz24
»

[Java] Tezave s stringom

Oddelek: Programiranje
131483 (1422) Sergio

Več podobnih tem