SetとMapを行ったり来たり

下記のプログラムを書いて,オブジェクト set と set2 の中身を iterator で順次出力した結果,同じ順番で文字列が表示されたけれど,この結果はあらゆる Java の実装系で同一と保証されているのだろうか?

import java.io.*;
import java.util.Set;
import java.util.HashSet;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;

public class tmp {
    public static void main(String[] args){

        Set<String> set = new HashSet<String>();
        set.add("AAA"); set.add("BBB"); set.add("CCC");
        set.add("DDD"); set.add("EEE"); set.add("FFF");

        Map<String,Integer> map = new HashMap<String,Integer>();
        Iterator it;
        it = set.iterator();
        int counter = 0;
        while(it.hasNext()){
            String s = (String)it.next();
            System.out.println(s);
            map.put(s, new Integer(counter+1));
        }

        Set set2 = map.keySet();
        it = set2.iterator();
        while(it.hasNext()){
            String s = (String)it.next();
            System.out.println(s);
        }
    }
}