Java 从输入创建集合

Java 从输入创建集合,java,set,Java,Set,我想从给定的输入创建一组元素。 (即i/p:5 5 4 4 3 3 3 2 2 1 1,然后o/p:5 4 3 2 1) 我有一个逻辑:创建一个数组并在其中存储元素。如果两个元素(当前选择的元素和数组中索引小于当前元素的元素)不相同,则依次读取元素并写入一个循环,该循环将指定布尔值false。对元素执行循环后,存储的所有布尔值都将通过位OR运算传递,如果总值为false,则将当前元素推送到存储集合的数组中,并选择下一个元素,然后执行相同的操作 我还没有为此编写代码。这就是算法。正当还有,你知道更

我想从给定的输入创建一组元素。 (即i/p:5 5 4 4 3 3 3 2 2 1 1,然后o/p:5 4 3 2 1)

我有一个逻辑:创建一个数组并在其中存储元素。如果两个元素(当前选择的元素和数组中索引小于当前元素的元素)不相同,则依次读取元素并写入一个循环,该循环将指定布尔值false。对元素执行循环后,存储的所有布尔值都将通过位OR运算传递,如果总值为false,则将当前元素推送到存储集合的数组中,并选择下一个元素,然后执行相同的操作

我还没有为此编写代码。这就是算法。正当还有,你知道更好的算法吗。找一套


谢谢

这类事情永远不需要使用数组。了解
列表
s和
设置
s并使用它们

Set<Integer> set = new LinkedHashSet<Integer>(Arrays.asList(5, 5, 4, 4, 3, 2, 4, 3, 1));
System.out.println(set);    // prints [5, 4, 3, 2, 1]
Set Set=newlinkedhashset(Arrays.asList(5,5,4,4,3,2,4,3,1));
系统输出打印项次(设置);//印刷品[5,4,3,2,1]

我仔细阅读了它,它是正确的,是的。我要补充的唯一一点是,您应该将按位OR运算的结果存储在单个
布尔
数组中,这样您就可以计算
false
出现的次数,这样您就知道最后的
int
数组应该有多长。