Új hozzászólás Aktív témák
-
modder
aktív tag
válasz Gyeptegla #4681 üzenetére
egyszerűbbé teheted az életed, ha csinálsz egy típust a számoknak
class Szam {
String eloado;
String cim;
int hossz; //masodperc
public Szam(String eloado, String cim, int hossz) {
// ertekadas a tagvaltozoknak
}
}Felteszem, hogy sikerült beolvasnod a sorokat. Biztonság kedvéért http://stackoverflow.com/questions/5868369/how-to-read-a-large-text-file-line-by-line-using-java Ha el akarod őket menteni a memóriában, akkor pl. (pszeudokód)
List<Szam> szamok = new ArrayList<Szam>();
while ((line = br.readLine()) != null) {
Szam aktualisSzam = parse(sor);
szamok.add(aktualisSzam);
}De elárulom neked, hogy ez egyik feladathoz sem kell.
B)
Szam elozoSzam = br.readLine(); // elso sor
while ((line = br.readLine()) != null) { // tobbi sor
Szam aktualisSzam = parse(sor);
if ( elozoSzam.hossz < aktualisSzam.hossz ) {
// nem igaz
}
elozoSzam = aktualisSzam;
}C) hasonlóan, de egy int-ben összegzed a számok hosszát (ha a sorok végére értél, elölről kezded, tehát két ciklust kell egymásba ágyaznod). A ciklusból kilépési feltétel az, a osszHossz >= K. Akkor az abban a ciklusban beolvasott szám lesz a keresett.
D) Itt már kell egy Map
Map<String,Szam> perCim = new HashMap<String,Szam>();Végigmész a sorokon, és megnézed, hogy az aktuális szám címével van-e szám a mapban. perCim.get(cim) != null. Ha nincs, beteszed.
Ha van, akkor megnézed, hogy az aktuális hosszabb-e, mint a bentlévő, és a feltételnek megfelelően cseréled.Ja, és köszönet, nagyobb nyelvtani hibák nélkül, tagolással, és az írásjelek megfelelő használatával tetted fel a kérdést. Ritkaságszámban megy az ilyen
[ Szerkesztve ]
-
modder
aktív tag
válasz Gyeptegla #4687 üzenetére
félreértetted. A konstruktorban csak értéket adsz:
this.cim = cim;
this.eloado = eloado;
this.hossz = hossz;A ciklusos részeket ugyanúgy a feladat függvényében csináld meg, ahogy eddig.
A parse(line) metódus meg annyit csinál, hogy kiveszi a sorból ezt a 3 értéket, és visszaad egy Szamot
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Imperium Ryzen 5 Phoenix 8000 PC Ryzen 5-8600G, A620TUF, 16GB DDR5 RAM, 1TB SSD
- Garanciális be quiet! Silent Loop 2 360mm (BW012) ( Light Wings ventikkel )
- IPad Mini 4 - 128 GB - Cellular + Wifi (+ TOK + FÓLIA)
- ÚJ Lenovo Legion 5 16IRX9 - 16" WQXGA 2k 165Hz - i5-13450HX - 16GB - 512GB - RTX 4060 - 3év garancia
- 1 TB Samsung M.2 2280, NVMe, PCIe, Gen4X4, SSD /számlával / 12 hónap jótállással
Állásajánlatok
Cég: HC Pointer Kft.
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest