• Aucun résultat trouvé

Java DUT 1 Feuille TD6 Université Paris-Est Marne-la-Vallée

N/A
N/A
Protected

Academic year: 2022

Partager "Java DUT 1 Feuille TD6 Université Paris-Est Marne-la-Vallée"

Copied!
2
0
0

Texte intégral

(1)

Java DUT 1 Feuille TD6 Université Paris-Est Marne-la-Vallée

Exercice 1.— Construction d’un index

On part d’une suite d’entrées formées d’un mot et d’un numéro de page, comme

22, "Java"

23, "Iterator"

25, "Java"

25, "Map"

25, "Java"

29, "Java"

et on veut obtenir un "index” comprenant la liste des mots avec les numéros de pages où ils apparaissent.

Iterator [23]

Java [22, 25, 29]

Map [25]

Chaque mot apparaît une fois, dans l’ordre alphabétique, et la liste des numéros correspondants et donnée en ordre croissant, sans répétition.

a) Créez une classeIndexpermettant de stocker l’index avec un champmap qui est uneMapet constructeur qui créera au début un index vide.

public class Index {

private final Map<...> map;

public Index(){

...

} }

b) Écrire dansIndexune méthodeinsertqui prend en argument un numéro de page et un mot, et modifie l’index pour tenir compte de cette nouvelle entrée.

public class Index {

private final Map<...> map;

public void insert(int page, String word){

// a completer }

}

1

(2)

La classeIndexsera utilisée par la classe IndexTestsuivante public class IndexTest {

public static Index makeIndex(){

Index index = new Index();

index.insert(22,"Java");

index.insert(23,"Iterator");

index.insert(25,"Java");

...

return index;

}

public static void main(String[] args){

Index index = makeIndex();

index.print();

} }

Exercice 2.— Le tirage du Loto

On désire effectuer un tirage aléatoire de 6 nombres compris entre 0 et 48 et afficher le tirage avec les nombres en ordre croissant.

> java Loto

[6, 17, 24, 33, 41, 42]

On écrit pour cela une classeLoto contenant une méthodemain.

public class Loto {

public static void main(String[] args) {

List<Integer> numbers = new ArrayList<Integer>(49);

}}

a) Complétez la classe Loto en remplissant numberspar les nombre de 0 à 48.

b) Mélangez les nombres en utilisant la méthode statiqueshufflede la classe Collections.

public static void shuffle(List<?> list)

c) Extraire une vue des 6 premières cases en utilisant la méthode subList deList.

List<E> subList(int fromIndex, int toIndex)

Returns a view of the portion of this list between the specified fromIndex, in- clusive, and toIndex, exclusive.

d) Triez cette sous-liste avec la méthode statiquesortde la classeCollections.

public static <T extends Comparable<? super T>>

void sort(List<T> list) e) Affichez la sous-liste.

2

Références

Documents relatifs

d) Écrire dans la classe Segment une méthode toString permettant d’afficher les deux points d’un segment. On utilisera la méthode toString de Pixel selon la technique de

pour que le programme lise au clavier une chaîne de caractères puis l’af- fiche en la mettant en majuscule. On trouvera la documentation sur la classe String du packetage java.lang

c) Écrire une classe SegmentTest destinée à tester les classes Segment et Pixel. Elle contiendra une méthode main où on crée un segment s1 avec le premier constructeur et un segment

On définit un classe Polygon qui représente un polygone défini par une suite de points. Les Polygon peuvent avoir un nombre différent de points mais on veut que le nombre maximal

On initialisera le champ author avec &#34;no author&#34; dans ce cas. Comment le compilateur fait-il pour savoir quel constructeur appeler ?. e) Comment faire maintenant pour que

g) Sachant qu’un carnivore à besoin du quart de son poids en viande par semaine, écrire une méthode getMeatForAWeek dans la classe Animal qui renvoit la quantité de viande

— Écrire la méthode void remove(Book b) qui permet de retirer un exemplaire d’un livre. Si le livre apparaît avec un nombre d’exemlaire 0, il sera retiré de la Map.. — Écrire

Ecrire des classes et méthodes pour lire un fichier texte et afficher ensuite un histogramme du texte : la liste des mots présents dans le texte et pour chacun d’eux, leur