Merci Tartempion pour ton exemple. C'est élégant je trouve, en effet. En Java 8, qui introduit une touche de programmation fonctionnelle, tu peux écrire les factorielles comme ça :
Code : #
IntStream.rangeClosed(1, 3).reduce(1, (x, y) -> x * y);
Code : #
IntStream.rangeClosed(1, 3).reduce(1, (x, y) -> x * y);
C'est indispensable de connaitre les conteneurs (ou collections) et leurs différences, complexité algorithmique (notation O) pour l'insertion d'élément, l'accès, la suppression, etc. De leur choix découle les performances de l'application, la maintenance et l'évolutivité.BearIsDead a écrit :John pretty much hit it right on the money by knowing linked lists, binary trees, k-ary trees, tries, lists, heaps, queues, stacks, multidimensional ar s, hash tables and hashing. Also space, time, and complexity tradeoffs of algorithms. [...] (J'ai quelques révisions à faire perso... pas seulement des révisions du reste)
D'accord avec toi Swing. On parle d' "overengineering". Qui va à l'encontre du https://en.wikipedia.org/wiki/KISS_principle- a écrit :Toujours se focaliser sur une définition claire du cahier des charges et du besoin client avant de vouloir se faire plaisir avec les subtilités d'un langage quelconque.