I have a Set that contains different random lines from a text file, now I'm new to Java so I don't know much about the methods available but I have tried using the java.util.Set.toArray() method but it returns an Object[] than can not be sorted.

Is there anyway to do this? any help would be appreciated.

Thank you.

Recommended Answers

All 2 Replies

If you are developing in Java 1.5 consider using generics in which you can make toArray() of Set return an array of T[] where T is the type of element you have stored in your Set.

Set<String> s = obj.someMethod();
String[] sArr = s.toArray(new String[s.size()]);

Alternatively, you can create a TreeSet out of your given Set which guarantees that its elements are always ordered.

Set s = obj.someMethod();
s = new TreeSet(s);
// s now contains elements sorted according to their
// natural ordering

Also, if you are in control of the method which returns a Set , you can modify the logic to store the elements in a TreeSet from the start which will do away with the need of performing a sort later on i.e. sort as you add.

./sos

import java.util.Iterator;
import java.util.SortedSet;
import java.util.TreeSet;

public class BlackRobe {

    public static void main(String args[]) {
        SortedSet<String> set = new TreeSet<String>();
        set.add("beta");
        set.add("alfa");
        set.add("gamma");
        Iterator<String> it = set.iterator();
        while (it.hasNext()) {
            String s = it.next();
            System.out.println(s);
        }
    }
}
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.