Tässä viestissä https://www.ohjelmointiputka.net/keskustelu/
oli juttua sulkeiden käytöstä length -metodissa. Itselläni kuitenkin vaihtoJärjestäminen toimii ilman sulkeita.
Koodi on:
class Arvohaku { private int[] taulu = {12,24,1}; //metodi private static void vJ(int[] taulu){ for(int i=0; i< taulu.length-1; ++i){ for(int j=i+1; j< taulu.length; ++j) if(taulu[i] > taulu[j]){ int apu = taulu[i]; taulu[i] = taulu[j]; taulu[j] = apu; } } } public static void main(String[] args){ Arvohaku A = new Arvohaku(); A.vJ(A.taulu); for(int i=0; i<A.taulu.length-1; ++i) System.out.println(A.taulu[i]); } }
Miksi tässä koodissa ei saa olla length -metodin kutsussa sulkeita? Normaalistihan metodi kutsussa pitää olla sulkeet.
Kuten tuolla linkkaamassasi ketjussa mainittiin, taulukoilta löytyy length-kenttä (ei siis metodi).
TsaTsaTsaa kirjoitti:
Kuten tuolla linkkaamassasi ketjussa mainittiin, taulukoilta löytyy length-kenttä (ei siis metodi).
Kiitos! Eli jos halutaan saada yhden alkion merkkimäärän pituus, niin käytetään length(). Length ilman sulkeita kertoo puolestaan taulukon alkioiden lukumäärän.
Ja List-rajapintaa toteuttavilla container-luokilla niiden sisältämien otusten määrän taas saa size()-metodilla. Ever heard of consistency, Sun? :)
hevonen kirjoitti:
TsaTsaTsaa kirjoitti:
Kuten tuolla linkkaamassasi ketjussa mainittiin, taulukoilta löytyy length-kenttä (ei siis metodi).
Kiitos! Eli jos halutaan saada yhden alkion merkkimäärän pituus, niin käytetään length(). Length ilman sulkeita kertoo puolestaan taulukon alkioiden lukumäärän.
Ja vielä tähän pientä varmistelua (kun noin yleistäen tuon ilmaiset vieläpä kun esimerkissäsi ei tainnut olla String -taulukkoa käytössä), että tuo mainitsemasi pätee siis String -luokan olioita sisältävälle taulukolle (tai vastaavasti muiden luokkien olioille, joilta löytyy metodi length, mitä se sitten niillä tekeekään). Esimerkiksi taulukoille, jotka sisältävät kokonaislukuja (int), tuo ei toimi, koska kokonaisluvut eivät ole olioita, eikä näin ollen niillä mitään metodejakaan ole.
Jos sinulla on merkkijonotaulukko, niin luonnollisestikin voit myös muita String -luokan metodeita kutsua. Eli jos on
String merkkijonot[] = { "Kissa", "Kani", "Kameli" };
niin seuraavat ovat ihan oikein
merkkijonot[0].length() // Palauttaa 5 merkkijonot[1].toUpperCase() // Palauttaa "KANI"
Seuraava on siis kuitenkin väärin
merkkijonot.length()
koska tuolla taulukolla ei ole length -metodia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.