Question: Im given a task which i am a little confused to understand. Here is the question statement:

---

The following program should read a file and store all its tokens in a member variable.
Your task is to write a single method that returns the number of items in tokenMap, the average length (as double value) of the elements in tokenMap, and the number of tokens starting with character "a".

---

Here the tokenMap is an object of type `HashMap<String, Integer>`;

I do have some idea about HashMap but what i want to know the "key value" for HashMap required is a single character or the whole word?? that i should store in tokenMap.

Also how can i compute the average length?

Answer: 
To compute the average length of the items in a hash map, you'll have to iterate over them all and count the length and calculate the average.

As for your other question about what to use for a key, how are we supposed to know? A hashmap can use practically any\* value for a key.

\*The value must be hashable, which is defined differently for different languages.
> 
> should i split it based upon words or
>  based upon each character
> 
> 
> 

The requirement is to make tokens, so you should split them based on words. Each word becomes a unique String key. It would make sense for the value to be the count of each token.

If the file you are reading has these three lines:

```
int alpha;
int beta;
float delta;

```

Then you should have something like 

```
<"int", 2>
<";", 3>
<"alpha", 1>
<"beta", 1>
<"float", 1>
<"delta", 1>

```

(The semicolon may or may not be considered a token.) 
Your average length would be ( 3x2 + 3x1 + 5 + 4 + 5 + 5) / 6.
Your length of tokens starting with "a" would be 5.0.

Look elsewhere on this forum for keySet and you should be good to go.