I have a List here:

```
List<String> container = new ArrayList<String>();
container.add("Book");
container.add("Paper");
container.add("Book");
container.add("Pen");
container.add("Pen");
container.add("Book");

```

How can i classify data in this List into a 3 sub-list like this:

```
List <String> container1  ==>that still keep 3 elements which have the same name "Book"
List <String> container2  ==>that have 1 element which is "Paper"
List <String> container3  ==>that still keep 2 elements which have the same name "Pen"

```

Thank you for your help

**In the case of there are many comment that my question are unclear**, so i will ask like this

If i have a list with more duplicated elements than the example list above, the sub-container list like container1,container2..., containerN will generate depend on the number of duplicated elements

How can I do that?