这个问题在这里已经有答案了:
java设置保留顺序(13个答案)
5个月前关门了。
这就是我试过的。
import java.util.*;
public class SetDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
HashSet<String> s1=new HashSet<String>();
s1.add("Java");
s1.add("C++");
s1.add("C");
s1.add("dotNet");
s1.add("JavaScript");
s1.add("Script");
s1.add("Python");
s1.add("JavaScript");
}
}
输出[java、脚本、c++、dotnet、c、javascript、python]
edit:just read 我想这也许是我问的答案
2条答案
按热度按时间ax6ht2ek1#
从相关javadoc:
这个类实现set接口,由一个哈希表(实际上是一个hashmap示例)支持。对机组的运行顺序不作保证;特别是,它不能保证随着时间的推移,订单将保持不变。此类允许空元素。
基本上,哈希集:
存储唯一元素并允许空值
由hashmap支持
不保持插入顺序
不是线程安全的
jvidinwx2#
你需要使用
LinkedHashSet<>()
同样的道理。您也可以使用
SortedSet
如果你想要自然的秩序。