CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[JAVA] Aide à propos des ArrayList

Insane007
Insane007
Niveau 6
06 septembre 2016 à 13:52:18

Salut,

Dans mon programme, je dois rentrer l'ID de l'employé et le nombre d'heures qu'il travaille. Mais le truc, c''est qu'on peut rentrer le nombre qu'on veut d'employés et rentrer après les heures travaillées correspondantes à chaque employé.
J'ai créé 2 ArrayList, une pour les employés et une pour les heures.
Le problème c'est que je n'arrive pas à assigner le nombre d'heures à un employé en particulier.
Voilà le bout de code qui me pose problème:

         
                         ArrayList<Employee> el = new ArrayList<Employee>();
		         ArrayList<DTR> att = new ArrayList<DTR>();
                        else if (command.equalsIgnoreCase("2"))
			{
				
				DTR dtr = new DTR ();
				System.out.println ("Employee list: ");
				for (int i=0; i<el.size(); i++)
				{
					System.out.println ((i+1) + " - " + el.get(i).ID);
				}	
				System.out.print ("Choose one employee from 1 to " + el.size() + " : ");
				int choice = s.nextInt();
				i = choice - 1;
				System.out.println ("You chose " + el.get(i).ID);
				s.nextLine();
				
				System.out.print ("Input Work Date: ");
				dtr.AttendanceDate = s.nextLine();
				System.out.print ("Input Hours Worked for " + dtr.AttendanceDate + " : ");
				dtr.HoursWorked = s.nextLine();
				att.add(i, dtr);
				
			}
			

Merci beaucoup de bien vouloir m'aider :)

Bunyan
Bunyan
Niveau 17
06 septembre 2016 à 14:19:32

DTR, sans déconner ?
Nomme tes variables et classes correctement !

Bref... pourquoi ne rajoutes-tu pas les heures travaillées dans "DTR", tout simplement ?

Insane007
Insane007
Niveau 6
06 septembre 2016 à 14:52:01

Désolé pour le nom des variables et classes, je débute à peine...
Comment je rajoute les heures travaillées dans "DTR" ?
Ce n'est pas juste : "att.add(i, dtr);" ?

Bunyan
Bunyan
Niveau 17
06 septembre 2016 à 15:07:44

J'ai lu un peu vite, on dirait.
Rajoute le temps plutôt dans ta classe "Employee" (je me suis concentré sur le nom alakon et ça m'a joué des tours...).
Tu n'as pas besoin de 2 List différentes. Le temps travaillé est uniquement afférent à un "Employee" et n'a aucune raison d'en être décorrélé. Rajoute donc un nouvel attribut dans la classe "Employee", avec les méthodes d'accès idoines et ça devrait faire ce que tu souhaites.

Jean-Esclave
Jean-Esclave
Niveau 10
06 septembre 2016 à 15:20:44

Le 06 septembre 2016 à 14:19:32 Bunyan a écrit :
DTR, sans déconner ?
Nomme tes variables et classes correctement !

http://projects.haykranen.nl/java/ :)

Insane007
Insane007
Niveau 6
06 septembre 2016 à 15:23:03

DTR voulait juste dire daily time record...
Enfin bon, pas grave, c'est vrai que c'est pas super comme nom.
D'accord, je vais mettre déplacer le temps travaillé dans la classe Employé.

Xnate
Xnate
Niveau 10
06 septembre 2016 à 20:54:52

Dans ce cas, n'hésite pas à appeler ta classe DailyTimeRecord, c'est plus clair et ça sera pas plus long à écrire parce que c'est ton IDE qui le fait de toute façon.

Et comme dit dans l'autre poste, DailyTimeRecord correspond à un seul employé et devrait donc appartenir à cette classe.

+ nomdetontableau.add(objet)

Javadoc disponible ici : https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html

TintinMage
TintinMage
Niveau 10
07 septembre 2016 à 17:13:34

Les heures travaillées ne font-t-elles pas parties d'un employé ?

yanno69003
yanno69003
Niveau 10
07 septembre 2016 à 17:36:05

Crée une classe qui prends en compte le nom de l'employé et son nombre d'heures, et fait une ArrayList de cette classe, au lieu de faire deux ArrayList différentes [[sticker:p/1kki]]

Message édité le 07 septembre 2016 à 17:38:56 par yanno69003
saske97
saske97
Niveau 9
08 septembre 2016 à 20:13:07

Une autre solution serait d ' utiliser une HashMap tel que la clé ici sera l' ID de l' employé et la valeur son nombre d' heures de travail. Et tu pourras toujours modifier le nombre d' heures de l' employé plus tard grace à son ID( a l' aide de la méthode replace par exemple).
https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment