Toon posts:

[Java] beginnersvraag over Arraylist

Pagina: 1
Acties:
  • 239 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik wil via java een arraylist creeeren die van een persoon de naam, twee hardloop-tijden en een totaaltijd bevat. die totaaltijd is opgebouwd door die laatste twee hardlooptijden op te tellen. ook moeten er gegevens kunnen worden toegevoegd aan de lijst, en dat dan automatisch die totaaltijd opgebouwd wordt. (dit is dus de probleemstelling). een arraylist maken levert geen problemen op. ik had ook al door dat als een gebruiker tekst invoert, deze ingelezen wordt als een string. deze moet dus geconverteerd worden naar een integer om er mee te kunnen rekenen. dat snap ik ook nog.
dan raak ik het spoor bijster: hoe kan ik deze twee tijden bij elkaar optellen en deze opslaan en koppelen aan de informatie bij de rest van de persoon? Ik heb zelf hier wel wat probeersels liggen qua code, maar heb niet het idee dat dat ook maar in de buurt komt.

alvast bedankt voor de moeite,

ps) ik heb uitgebreid de search gebruikt, maar kon niks vinden waar ik wijs uit kon worden.
ps2) als iemand nuttige voorbeelden/links heeft, dan zou dit ook zeer welkom zijn!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 10-05 12:29

Creepy

Tactical Espionage Splatterer

Wat heb je nu precies geprobeerd? Wat lukte daar niet mee? Krijg je foutmeldingen? zo ja welke?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
Hmm... wat is nu precies de bedoeling: wil je van meerdere personen een naam, twee tijden en 1 totaaltijd op kunnen slaan, of wil je deze gegevens van 1 enkele persoon opslaan in een ArrayList?

Of: wil je voor 1 enkele persoon een naam en een totaaltijd opslaan, waarbij de laatste is berekend uit twee of meer tijden?

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Je kunt bijvoorbeeld een Hardloper klasse maken dat al die informatie per hardloper bijhoudt en uitrekent, en die objecten dan in een ArrayList proppen.

[ Voor 4% gewijzigd door CyBeR op 09-03-2005 22:44 ]

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
ik heb niet eens een idee hoe ik hier mee moet beginnen. ik heb een programmatje via mijn opleiding gekregen, en wilde dit zelf (als verkenning op het java-pad) eens aanpassen. ik heb nu dus geen idee hoe ik zoiets nou doe. er is een soort arraylist (treeMap om precies te zijn) , en er is een methode waarmee je gegevens toe kunt voegen aan die arraylist. via een key worden de gegevens gekoppeld. Ik kan wel een extra invoer maken, dat je handmadig de totale tijd in kunt voeren. maar ik zou graag weten hoe je het programma zoiets zelf toe kunt laten voegen. ik heb geen idee hoe ik zoiets zou moeten doen. is er niet iemand die mij een voorzetje kan geven?

Verwijderd

Topicstarter
MrBucket schreef op woensdag 09 maart 2005 @ 22:43:
Hmm... wat is nu precies de bedoeling: wil je van meerdere personen een naam, twee tijden en 1 totaaltijd op kunnen slaan, of wil je deze gegevens van 1 enkele persoon opslaan in een ArrayList?

Of: wil je voor 1 enkele persoon een naam en een totaaltijd opslaan, waarbij de laatste is berekend uit twee of meer tijden?
verschillende personen, iedere persoon heeft 2 tijden gelopoen en een totaaltijd (tijd1+tijd2)

  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
Verwijderd schreef op woensdag 09 maart 2005 @ 22:59:
[...]
verschillende personen, iedere persoon heeft 2 tijden gelopoen en een totaaltijd (tijd1+tijd2)
Ah, kijk aan :)

Ik neem aan dat er voor persoon een aparte klasse bestaat? Zo niet, ff melden ;)

Als dit wel zo is, welke waarden worden er in die klasse opgeslagen? Ik neem aan de naam, en de twee gelopen tijden? Hoe wordt de totaaltijd bepaald? Is dat een waarde (wordt het opgeslagen in een int of een double), of bestaat er een methode voor die de som van de gelopen tijden teruggeeft?

Als er geen methode voor bestaat, dan is dat de richting waarin je wil gaan. Anders post eens de sourcecode van je klasse van "persoon", dat werkt voor ons wat makkelijker.

  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Volgens mij is je probleem niet hoe je die info in de ArrayList moet opslaan maar eerder hoe je de gegevens moet verwerken. Over het rekenen met tijden in genoeg te vinden op google.

Daarnaast is het niet zo handig om deze (verschillende) gegevens op te slaan in een ArrayList. Doe zoals CyBeR aangeeft. Maak een nieuwe klasse waarin je een aantal variabelen neerzet. De totaaltijd hoeft dan ook geen vaste waarde te zijn maar kan ook een functie zijn.

Java:
1
2
3
4
5
6
7
8
9
10
public class Loper {
  public String naam;
  public int secondenTijd1;
  public int secondenTijd2;

  public int getTotaalTijd() {
    return (secondenTijd1 + secondenTijd2);
  }

}

www.fendt.com | Nikon D7100 | PS5


  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 04-05 13:54
Als ik dit zo lees denk ik dat je best eerst wat kennis opdoet over Object geörienteerd programeren.

Java site is een goed begin!

"Live as if you were to die tomorrow. Learn as if you were to live forever"


Verwijderd

Topicstarter
MrBucket schreef op woensdag 09 maart 2005 @ 23:07:
[...]

Ah, kijk aan :)

Ik neem aan dat er voor persoon een aparte klasse bestaat? Zo niet, ff melden ;)

Als dit wel zo is, welke waarden worden er in die klasse opgeslagen? Ik neem aan de naam, en de twee gelopen tijden? Hoe wordt de totaaltijd bepaald? Is dat een waarde (wordt het opgeslagen in een int of een double), of bestaat er een methode voor die de som van de gelopen tijden teruggeeft?

Als er geen methode voor bestaat, dan is dat de richting waarin je wil gaan. Anders post eens de sourcecode van je klasse van "persoon", dat werkt voor ons wat makkelijker.
er is nog geen methode die dit uitrekent. dit zou me met wat gepuzzel nog wel moeten lukken denk ik. ik heb echt totaal geen idee hoe ik tijd1+tijd2 in die arraylijst moet krijgen... ik werk trouwens nu met integers.

Verwijderd

Topicstarter
FendtVario schreef op woensdag 09 maart 2005 @ 23:14:
Volgens mij is je probleem niet hoe je die info in de ArrayList moet opslaan maar eerder hoe je de gegevens moet verwerken. Over het rekenen met tijden in genoeg te vinden op google.

Daarnaast is het niet zo handig om deze (verschillende) gegevens op te slaan in een ArrayList. Doe zoals CyBeR aangeeft. Maak een nieuwe klasse waarin je een aantal variabelen neerzet. De totaaltijd hoeft dan ook geen vaste waarde te zijn maar kan ook een functie zijn.

Java:
1
2
3
4
5
6
7
8
9
10
public class Loper {
  public String naam;
  public int secondenTijd1;
  public int secondenTijd2;

  public int getTotaalTijd() {
    return (secondenTijd1 + secondenTijd2);
  }

}
dus het is niet mogelijk om een niet-vaste waarde op te slaan in een array-list?

  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
Verwijderd schreef op woensdag 09 maart 2005 @ 23:25:
[...]
er is nog geen methode die dit uitrekent. dit zou me met wat gepuzzel nog wel moeten lukken denk ik. ik heb echt totaal geen idee hoe ik tijd1+tijd2 in die arraylijst moet krijgen... ik werk trouwens nu met integers.
@cuball: De source heeft hij niet zelf "from scratch" geschreven, dus je kan TS 't niet kwalijk nemen als het slecht opgezet is. ;)

Ik begrijp uit je laatste 2 posts dat je voor 1 (of meerdere) personen zijn naam, 1e, 2e en totaaltijd als aparte elementen opslaat in de TreeMap?

Of bestaat er wel een klasse voor een persoon / loper? (Hint: als er geen bestand bestaat met de naam "loper", "persoon" oid, dan is er ook geen klasse voor). Welke namen hebben je source-code bestanden?

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ik denk dat je zowiezo eerst wat informatie moet geven wat je nu precies hebt want het is totaal niet duidelijk. Eerst heb je het over een ArrayList en daarna over een TreeMap met een soort van key ( Iets van een HashMap? ). Dat zijn al 2 totaal verschillende dingen.

Voor de rest lijkt het me inderdaad het handigst dat je een Class als b.v. Loper maakt en daar de gegevens en de berekening in stopt en daar dan instanties van in een collectie ( HashMap, ArrayList haalt niet uit ) stopt.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • the_shadow
  • Registratie: Januari 2003
  • Laatst online: 17-04 13:34

the_shadow

Bubbelmaker extraordinair

Verwijderd schreef op woensdag 09 maart 2005 @ 23:27:
[...]


dus het is niet mogelijk om een niet-vaste waarde op te slaan in een array-list?
Jij wil bijvoorbeeld een variabele opslaan? Dat kan, maar dat moet dan met een methode. De methode leest de variabele uit en zet hem in de ArrayList. In de ArrayList zelf staan de dingen vast. Maar het hoeft toch ook niet variabel te zijn terwijl het in de lijst staat? Als er een nieuwe tijd beschikbaar is, dan laat je die methode (zoals die van FendtVario) gewoon de tijd uitrekenen om die vervolgens in de ArrayList te stoppen.

Verder is de Java API specificatie altijd handig om er bij te hebben.deze is van Java 1.5 (of Java 5, of J2SE, hoe wordt het genoemd :P)

In de Java API specs kan je zo ook de verschillende mogelijkheden van ArrayLists vinden: http://java.sun.com/j2se/.../java/util/ArrayList.html

I'd rather be diving | The best thing about alcohol hand gel in hospitals isn't the hygiene, but that everyone walks around like they're hatching a dastardly plan. | "Cheese is just milk’s attempt at being immortal."


Verwijderd

Topicstarter
ik heb een vrijwel gelijk gecodeerd stukje gevonden op internet als wat ik nu zelf heb (heb een paar dingen veranderd die misschien neit goed zijn, dus heb liever commentaar bij iets wat al wel goed werkt). dit adres boek werkt ongeveer gelijk als 'mijn' projectje. er kan een naam, adres en telefoonnummer worden toegevoegd. dit zou ik dus uit willen breiden met 2 extra gegevens (namelijk 2 -in mijn geval- hardloop tijden) en een 3e gegeven wat deze 2 gegevens optelt. Ik kan zonder problemen zorgen dat er bijvoorbeeld 2 tijden toegevoegd kunnen worden, maar deze worden dan als string ingelezen en daar valt niet mee te rekenen,

link: http://www.daimi.au.dk/dP...apter12/address-book-v2t/

er staat een lijstje in met voorbeeldgegevens, dit kan ik wel uitbreiden zonder problemen, maar dan heb je nog niks toegevoegd. het probleem zit hem in de add methode (denk ik).

  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Zoals je zit hebben ze in dit adresboek gebruik gemaakt van een aparte klasse voor contacten, ongeveer gelijk aan de klasse Loper in een vorige post. Daarnaast hebben ze een aparte klasse die de lijst beheert.

Over welke add() heb je het? De add() die je zelf gemaakt hebt of die van ArrayList. Post anders eens de esentiele stukjes code van jezelf.

www.fendt.com | Nikon D7100 | PS5


Verwijderd

Topicstarter
Ik wil naast name,phone en adress 2 objecten extra toe laten voegen. namelijk tijd en tijd2. tijd en tijd2 worden opgeslagen als Strings. ik moet deze naar integers omzetten voordat ik er mee kan gaan rekenen. dat kan dus op zo'n manier:

Java:
1
2
3
4
5
int a;

String s= "125.43";

a=(int) s;


maar stel dat ik niet van te voren een waarde wil toekennen (in dit geval 125.43) maar dat ik de waarde van het String-object hetzelfde wil hebben als die van het nieuwe int-object (qua getal dus). hoe doe ik dit? als ik dit weet en er achter ben hoe ik twee objecten kan optellen en opslaan als een 3e object dan ben ik er uit geloof ik (en dat moet wel lukken lijkt me).

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Welkom in de wondere wereld van Java. Ik vrees dat je het pad op dit moment niet op de juiste manier bewandelt. Jij wil namelijk (zoals bijna iedereen overigens) gelijk aan de slag en gaan pielen, zonder dat je de basis doorhebt. Ga nu gewoon eens een paar tutorials doen, er zijn er zat te vinden. Als je een willekeurig Java boek raadpleegt (probeer je schoolbieb eens), dan worden dit soort basic vragen sneller duidelijk.
Wij kunnen dit soort vragen wel voor je oplossen alleen heb je aan het antwoord niet zoveel als je geen kader hebt om het in te plaatsen.

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

125.43 ga je iig niet in een integer krijgen zonder 't af te ronden. Integers kennen geen decimalen.

All my posts are provided as-is. They come with NO WARRANTY at all.


  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Teneerste, 125.43 is geen integer maar een double.

2de?
Java:
1
2
3
4
5
6
7
String tijd1;
String tijd2;
String tijd3;

tijd1 = "80";
tijd2 = "120";
tijd3 = (String) Integer.parseInt(tijd1) + Integer.parseInt(tijd2);

www.fendt.com | Nikon D7100 | PS5


Verwijderd

Topicstarter
dat het een double was snap ik zelf ook, was even een foutje in de vluggigheid :D ik wil geen concrete getallen zoals die 80 of die 120 van te voren instellen, dan wordt er namelijk steeds dezelfde tijd opgeslagen.

Verwijderd

Topicstarter
bigbeng schreef op donderdag 10 maart 2005 @ 11:44:
Welkom in de wondere wereld van Java. Ik vrees dat je het pad op dit moment niet op de juiste manier bewandelt. Jij wil namelijk (zoals bijna iedereen overigens) gelijk aan de slag en gaan pielen, zonder dat je de basis doorhebt. Ga nu gewoon eens een paar tutorials doen, er zijn er zat te vinden. Als je een willekeurig Java boek raadpleegt (probeer je schoolbieb eens), dan worden dit soort basic vragen sneller duidelijk.
Wij kunnen dit soort vragen wel voor je oplossen alleen heb je aan het antwoord niet zoveel als je geen kader hebt om het in te plaatsen.
ik ga ook echt nog wat tutorials doorspitten... maar nu wil ik ook weten hoe dit gaat werken ook. anders heb ik er voor niks tijd in gestoken

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Fair enough, in dat geval moet kun je eens de oplossing van FendtVario proberen om te zetten naar doubles. Dus waar hij van Integer.parseInt gebruik maakt kun jij dan Double.parseDouble(). Kijk anders hier eens voor een uitleg over alle classes die de j2sdk (versie 1.5.0) rijk is:
http://java.sun.com/j2se/1.5.0/docs/api/

Verwijderd

Topicstarter
bigbeng schreef op donderdag 10 maart 2005 @ 12:40:
Fair enough, in dat geval moet kun je eens de oplossing van FendtVario proberen om te zetten naar doubles. Dus waar hij van Integer.parseInt gebruik maakt kun jij dan Double.parseDouble(). Kijk anders hier eens voor een uitleg over alle classes die de j2sdk (versie 1.5.0) rijk is:
http://java.sun.com/j2se/1.5.0/docs/api/
ja dat snap ik allemaal wel. maar die code van FendtVario bevat de waardes 80 en 120. ik krijg mijn waarde uit een invoer-dos-menu. er staat ergens in de code 'return adress'. daar wordt dus de waarde van address bepaald. die waarde die daar bepaald wordt wil ik gebruiken. en niet een van te voren vastgestelde waarde.

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Grom, weinig fantasie hmm?
Waar je harde strings gebruikt mag je ook waarden uit objecten gebruiken. Dus ipv "80" zet je object.property neer. Dit is basic Java en basic programmeren, ik stel dus nogmaals voor om je eerst daarin te gaan verdiepen.

  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Of readln natuurlijk als je op de console werkt :P

www.fendt.com | Nikon D7100 | PS5

Pagina: 1