Bonjour a toutes et a tous,
Je me pose actuellement une question existentielle sur les performances de mon programme.
Je ne suis moi même pas un débutant mais je pense que les bonnes pratiques s'acquièrent au plus tôt au mieux donc autant en faire profiter les débutants.
Voila 2 bouts de code qui font exactement la même chose: vérifier que toutes les pieces jointes sont presentes.
Version Tableau
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 List lstPieces = client.getListPiecesJointes(); List lstCat = client.getListCategoriesPiecesJointes(); PieceJointe[] pieces = (PieceJointe[])lstPieces.toArray(new PieceJointe[lstPieces.size()]); CategoriePJ[] categories = (CategoriePJ[]) lstCat.toArray(new CategoriePJ[lstCat.size()]); boolean allPiecesFound = true; for (int i = 0; i < categories.length; i++) { boolean pieceFound = false; for (int j = 0; j < pieces.length; j++) { if (pieces[j].getCategoriePJ().getCode().equals(categories[i].getCode())) pieceFound = true; } if (!pieceFound) allPiecesFound = false; }
Version Iterator
La question : quelle solution présente les meilleurs performances ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 List lstPieces = client.getListPiecesJointes(); List lstCat = client.getListCategoriesPiecesJointes(); for (Iterator<CategoriePJ> itCat = lstCat.iterator(); itCat.hasNext(); ) { CategoriePJ categorie = itCat.next(); boolean pieceFound = false; for (Iterator<PieceJointe> itPiece = lstPieces.iterator(); itPiece.hasNext(); ) { PieceJointe piece = itPiece.next(); if (piece.getCategoriePJ().getCode().equals(categorie.getCode())) pieceFound = true; } if (!pieceFound) allPiecesFound = false; }
Et puisque nous somme dans la section Débuter du forum Java... je souhaiterai que les réponses soit argumentées afin qu'on puisse comprendre pourquoi telle ou telle solution est la meilleur et ainsi se renseigner sur les mécanismes des List en Java.
Merci d'avance pour vos réponses.
Bonne journée a toutes et a tous.
Cordialement.
Scarz.
Partager