Session 12 |
Tasks (to be submitted by Sun 6.05 23:55) 1 point
Task 1.
Use Map
to solve the following task. Write a program which reads the data in from a file, makes statistics on the used words and displays the result on the screen. (Hint: if a word already exists in the map, replace its value.)
The program should have a class called TextAnalyzer
. In the class, there should be two constructors: one takes in the file name as an argument; the second constructor should take in two parameters - java.io.File
(from where to read data in) and String
(for the file encoding). The result of the analysis should return a method without parameters called wordFrequency
.
Hint: it is possible to get a text from the file using only one expression. The required components are:
Task 2.
Create a class called Pair
who has two parameter types. The class should have two instance fields (one for each type), a constructor which instantiates the fields and the get
and set
methods (getFirst
, getSecond
, setFirst
, setSecond
). Add the toString
method which returns the content of the fields. Create a client class. In the main method of the class, create a pair of String,Integer
(e.g. a person's name and his age) and a pair of String,String
(e.g. a person's name and his address) and test the instance methods.
Task 3.
Create a generic class called Comparer
which takes in one parameter type. Bound the parameter type so that it can take only the Comparable
interface implementing types. Add a method called findLargest
which takes in two parameters. The method has to compare the objects and return the largest object based on the compareTo
method.
Hint 1: leave the initial parameter type out and write the using a specific data type. Then add the parameter type and replace the data types.
Hint 2: <T extends Comparable<T>>
is a nice solution - T
is the data type whose objects can be compared.
Session 12 |