问题描述
这是我尝试过的。
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]
编辑:Just read this,i think it might be answer to what i was asking
解决方法
该类实现Set接口,由哈希表支持 (实际上是一个HashMap实例)。 它不能保证 集合的迭代顺序;特别是,它不能保证 随着时间的推移,订单将保持不变。此类允许null 元素。
基本上是HashSet:
- 存储唯一元素并允许为空
- 由HashMap支持
- 不保持广告插入顺序
- 不是线程安全的
您需要同时使用LinkedHashSet<>()
。
import java.util.*;
public class SetDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
HashSet<String> s1=new LinkedHashSet<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");
}
}
如果需要自然顺序,也可以使用SortedSet
。