Toon posts:

[java] Integer aan intnaam plakken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik krijg een x aantal ID's meegestuurd, deze wil ik in variabelen stoppen. Ik weet niet hoeveel ID's, dus maak ik een While loop met een variabele Teller. Deze variabele Teller wil ik elke keer weer achter de intnaam ID zetten. Dus bijvoorbeeld:

Teller=1;

While (e.hasMoreElements()) {
Int ID+Teller = e.nextElement();
Teller++;
}

zodat ik dus na deze loop met bijvoorbeeld 3 meegestuurde ID's deze drie intnamen heb:
ID1, ID2, ID3

Mijn manier werkt niet, die Teller kan ik op deze manier niet aan de intnaam plakken. Misschien wel weer een stomme vraag, maar ik kan het antwoord zo niet vinden in de Java reference van JBuilder.

  • Wirf
  • Registratie: April 2000
  • Laatst online: 08:06
Hier heb je een array voor nodig, of een vector:

Java:
1
2
3
4
5
6
7
import java.util.Vector;

Vector eenVector = new Vector();

while (e.hasMoreElements()) {
  eenVector.addElement(e.nextElement);
}


en dan weer uitlezen:

Java:
1
2
3
for (int i = 0; i < eenVector.size(); i++) {
  System.out.println("ID" + i + ": " + eenVector.elementAt(i));
}


duidelijk zo?

Meer over de Vector op: http://java.sun.com/j2se/...api/java/util/Vector.html

[ Voor 25% gewijzigd door Wirf op 04-01-2003 12:42 ]

Heeft sinds kort zijn wachtwoord weer terug gevonden!


Verwijderd

Topicstarter
Bedankt, maar dit is niet mijn probleem.
Ik moet de integer van de variabele Teller aan een intnaam, in dit geval "ID" vast plakken. Misschien weet je ook hoe dat moet?

Update: Die vector heb ik al gevuld.

[ Voor 14% gewijzigd door Verwijderd op 04-01-2003 12:43 ]


  • Wirf
  • Registratie: April 2000
  • Laatst online: 08:06
Verwijderd schreef op 04 January 2003 @ 12:42:
Bedankt, maar dit is niet mijn probleem.
Ik moet de integer van de variabele Teller aan een intnaam, in dit geval "ID" vast plakken. Misschien weet je ook hoe dat moet?
Dat kan zover ik weet niet.
Precies voor dit soort problemen zijn array's en vector's gemaakt

Je zou het nog kunnen proberen met een grote if-then-else statement, maar dat wil je ook niet

if (teller == 1) {
ID1 = e.nextElement();
} else if (teller = 2) {
ID2 = e.nextElement();
} else if { ...

Heeft sinds kort zijn wachtwoord weer terug gevonden!


Verwijderd

Topicstarter
Goed, in ieder geval bedankt.
En dat laatste is niet zo'n goed idee nee, mijn voorbeeld bevat 3 ID's, maar het zouden er ook 28 kunnen zijn :s

  • Wirf
  • Registratie: April 2000
  • Laatst online: 08:06
Verwijderd schreef op 04 januari 2003 @ 12:47:
Goed, in ieder geval bedankt.
En dat laatste is niet zo'n goed idee nee, mijn voorbeeld bevat 3 ID's, maar het zouden er ook 28 kunnen zijn :s
Waarom moet je het eigenlijk perse op die manier hebben dan? Waarom kun je niet gewoon eenVector.elementAt(i) gebruiken?

Nu ben ik toch wel nieuwsgierig geworden.

Heeft sinds kort zijn wachtwoord weer terug gevonden!


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

*vind het vaag verhaal*

Ik begrijp dat jij n getallen binnenkrijgt en je weet niet hoe lang n is. En verder wil je die getallen tot een string omzetten?

Verwijderd

Topicstarter
Dat kan inderdaad ook, ga ik nu ook doen :)
Ik had liever alle meegestuurde gegevens in vaste variabelen gestopt om ze daarna te gebruiken om database dingen te doen. Maar ik kan ook elke lus diezelfde bewerkingen uitvoeren.

Thanx 4 yur support!

Verwijderd

Topicstarter
Alarmnummer schreef op 04 januari 2003 @ 12:55:
*vind het vaag verhaal*

Ik begrijp dat jij n getallen binnenkrijgt en je weet niet hoe lang n is. En verder wil je die getallen tot een string omzetten?
Als ik 3 variabelen meegestuurd krijg wil ik dit resultaat krijgen:
int ID1 = variabele 1
int ID2 = variabele 2
int ID3 = variabele 3

Als ik er 5 meegestuurd krijg:
int ID1 = variabele 1
int ID2 = variabele 2
int ID3 = variabele 3
int ID4 = variabele 4
int ID5 = variabele 5

Wat snap je er voor de rest niet aan?

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Wirf schreef op 04 januari 2003 @ 12:48:
[...]


Waarom moet je het eigenlijk perse op die manier hebben dan? Waarom kun je niet gewoon eenVector.elementAt(i) gebruiken?
eenVector.get(i); is een stuk leesbaarder ;)

En verder moet je niet gaan vast zitten aan een list implementatie, maar kun je beter als volgt werken:

List getalList = new Vector();

als verderop blijft dat gesynchroniseerde structuur niet nodig is, dan zou je kunnen kiezen voor een ArrayList. En als je veel moet verwijderen en toevoegen en je zit niet te springen om te werken met een index, kan je ook gaan voor een LinkedList.

Verder kan je beter als volgt gaan itereren over een List.
code:
1
2
3
for(Iterator itt = list.iterator();itt.hasNext();){
      BLaat b = (Blaat)itt.next();
}


Hierdoor verplaats je de verantwoordelijkheid van de iteratie naar de iterator ipv je dit zelf gaat doen. Hierdoor kunnen daar de optimalisaties plaats vinden, ipv dat je als een olifant door een porcelein kast loopt. Als je bv een LinkedList hebt, is werken met een index ongelovelijk traag.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Verwijderd schreef op 04 January 2003 @ 12:58:
[...]


Als ik 3 variabelen meegestuurd krijg wil ik dit resultaat krijgen:
int ID1 = variabele 1
int ID2 = variabele 2
int ID3 = variabele 3

Als ik er 5 meegestuurd krijg:
int ID1 = variabele 1
int ID2 = variabele 2
int ID3 = variabele 3
int ID4 = variabele 4
int ID5 = variabele 5

Wat snap je er voor de rest niet aan?
En wat voor objecten zijn die id`s? is dat:

class ID{int idNr; ....}

Of mag dat gewoon een Integer zijn?

[edit]
Volgens mij bedoel je wel een Integer. Het is bij het collection framework niet mogelijk om er primitieve types in te plaatsen, dus je zult altijd moeten werken met wrappers.

Jij wil dus een type waar je een hele zooi getallen in op kan slaan. Als zou persoonlijk gaan voor een Map structuur zoals de Hashmap. Hierin kan je supersnel zoeken (zoektijd is niet afhankelijk van het aantal elementen in een lijst). Of anders op een knulligere manier dmv een List of Set. Hier moet je gemiddeld n/2 zoek acties doen als je structuur n groot is.

[ Voor 34% gewijzigd door Alarmnummer op 04-01-2003 13:04 ]


Verwijderd

Topicstarter
Ze komen uit een vector en daar worden ze als integer ingezet.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Verwijderd schreef op 04 januari 2003 @ 13:02:
Ze komen uit een vector en daar worden ze als integer ingezet.
Aha, je krijgt een vector met n getallen aan, en dit wil je opslaan?

List idList = getIdsFromRonaldDude();

Verwijderd

Topicstarter
Mijn probleem is die intnaam.
int DeIntVanDeTellerIs(en hier achteraan de int van de Teller) = maakt niet uit

Volgens mij ga jij een hele andere kant op...

Ik moet er ook bij vermelden dat ik geen Java-bikkel ben, dit is gewoon voor een schoolopdracht (moet toch gebeuren he :'( )

[ Voor 29% gewijzigd door Verwijderd op 04-01-2003 13:09 ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Maar bedoel je in godsnaam met de de intVanDeTeller???

En verder heb ik de indruk dat je niet helemaal begrijpt hoe het echt werkt. Welke prutsdocent heb je? *doet ook groningen hio*

[ Voor 58% gewijzigd door Alarmnummer op 04-01-2003 13:11 ]


Verwijderd

Topicstarter
Die teller wordt elke lus 1 verhoogd. Als ik een vector met 3 variabelen meestuur, wil ik elke lus een int aanmaken. Aan deze int vastgeplakt wil ik graag de inhoud van de teller hebben. Dus:

Teller=1;

While (e.hasMoreElements()) {
Int ID+Teller = e.nextElement();
Teller++;
}

Zodat ik met drie meegestuurde variabelen 3 integers aanmaak:
ID1, ID2 en ID3 gevuld met de meegestuurde variabelen.

Is voor project, er is geen leraar die dit uitlegt :'(

[ Voor 8% gewijzigd door Verwijderd op 04-01-2003 13:15 ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

begrijp je hier wel wat je zegt??
Int ID+Teller = e.nextElement();

Verwijderd

Topicstarter
Alarmnummer schreef op 04 January 2003 @ 13:15:
begrijp je hier wel wat je zegt??
Int ID+Teller = e.nextElement();
Dat werkt dus inderdaad niet!!!

Mijn vraag dus: hoe krijg ik het gedeelte "ID+Teller" zo, dat ik dus "ID1" als intnaam krijg?

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Verwijderd schreef op 04 January 2003 @ 13:19:
[...]


Dat werkt dus inderdaad niet!!!

Mijn vraag dus: hoe krijg ik het gedeelte "ID+Teller" zo, dat ik dus "ID1" als intnaam krijg?
tip:
je kan allerlei manieren van combineren van letters proberen. Misschien krijg je wel een goeie combinatie.

tip2:
leer programmeren. Je mist de basics.

Verwijderd

Topicstarter
In ieder geval bedankt.

Ik zei toch al dat ik Java niet onder de knie heb, ik kan alleen goed ASP'en...

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Verwijderd schreef op 04 January 2003 @ 13:23:
In ieder geval bedankt.

Ik zei toch al dat ik Java niet onder de knie heb, ik kan alleen goed ASP'en...
Dit is niet zozeer een java kwestie, maar de essentie van imperatieve programmeertalen.

Over het algemeen kan je alleen een toekenning doen in de vorm van
a= .....;

en je kan niet een toekenning doen in de vorm van:
a-2 = ....;

Je moet dan zelf de vergeliijking herschrijven zodat hij in de vorm a= komt.

Het maakt verder niet uit of je nu in java,pascal,c,delphi etc programmeert. De basis is overal hetzelfde.

Verwijderd

Waarom wil je je intnaam ID1 ID2 ID3 steeds aanmaken. Daar hebben ze wat op gevonden en dat heet een array of een vector whatever.
ALs je dat wil gaan maken (op moment van schrijven weet ik het niet) dan betekend dat dat je onnodig recourses moet aanmaken voor elke int.
Je kan toch het nummertje van de plaats in de vector ook gebruiken als zijnde "intnaam" als je begrijpt wat ik bedoel.

  • DaCoTa
  • Registratie: April 2002
  • Nu online
Volgens mij kan dit niet. De compiler kan dan toch nooit weten welke variabelen wel of niet gedefinieerd zijn? Dus als je later bijvoorbeeld ergens ID28 gebruikt, kan de compiler niet weten of die wel of niet bestaat. Dit soort constructies kunnen alleen maar in een variabele dataopslag zoals een List, Array of Vector. Maar misschien als je iets meer context uitlegt, dat het dan duidelijk wordt waarom je het idee hebt gekregen om het zo op te lossen?

Verwijderd

Topicstarter
40 minuten terug heb ik al besloten niet zo omslachtig te doen :s

Ik haal gewoon de gegevens uit de vector en ga er direct mee aan de slag.

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 17-08 14:28

Apache

amateur software devver

In php kan wel wat hij wil, nl variable variablenamen, maar meestal wil je dat dus niet (hoewel ik het voor enkele praktische dingen al gebruikt heb -> tijdsbesparing)

If it ain't broken it doesn't have enough features


  • nxt
  • Registratie: November 2001
  • Laatst online: 26-08 13:51

nxt

Apache schreef op 04 januari 2003 @ 16:42:
In php kan wel wat hij wil, nl variable variablenamen, maar meestal wil je dat dus niet (hoewel ik het voor enkele praktische dingen al gebruikt heb -> tijdsbesparing)
variabele variabele namen kent java niet, maar wat volgens mij 't dichtste in de buurt van de openingspost komt is een of ander vorm van een Map
bijv. HashMap
je hebt keys & values,
dus bijv
Java:
1
2
3
4
5
int teller=0;
Map m=new HashMap();
while(e..hasMoreElements()) {
    m.put("ID"+(++teller),e.nextElement());
}
Pagina: 1