TreeSet未添加最后的元素

huangapple go评论72阅读模式
英文:

TreeSet not Adding Last Elements

问题

在两个项目中,我无法在某些条件下向TreeSet<Integer>中添加任何0或1的整数。我在第一个项目中能够解决这个问题,但这一次我确实需要将我从数组中取出的每个元素都放入TreeSet中。以下是测试代码。

int[] arr = {10, 9, 8, 7, 6, 4, 3, 3, 3, 2, 2, 2, 1, 0};
java.util.TreeSet<Integer> set = new java.util.TreeSet<Integer>();
for(int i: arr)
	set.add(arr[i]);
System.out.println(set);

如果我将0和1放在列表的前面,它可以完美运行。但无论何种情况下,我都需要在该TreeSet中包含每个元素,因为在实际项目中,我需要生成一系列随机数并以各种方式对它们进行排序。

英文:

On two projects now, I haven't been able to add any integer of 0 or 1 to a TreeSet&lt;Integer&gt; in some conditions. I was able to work around it on the first one, but I do need every element in the array I'm taking numbers from to enter the TreeSet this time. Test code below.

int[] arr = {10, 9, 8, 7, 6, 4, 3, 3, 3, 2, 2, 2, 1, 0};
java.util.TreeSet&lt;Integer&gt; set = new java.util.TreeSet&lt;Integer&gt;();
for(int i: arr)
	set.add(arr[i]);
System.out.println(set);

If I put the 0 and 1 at the front of the list, it works perfectly. But I do need every element in that TreeSet under any circumstance, not just some, because in the actual project, I need to generate a bunch of random numbers and sort them in various ways.

答案1

得分: 1

你把 arr[i] 添加到了你的集合中,而不是添加 i。

英文:

You're adding arr[i] to your set, instead of adding i.

答案2

得分: 1

你可以采用这个版本,我使用了ArrayList来代替数组进行TreeSet操作,你可以添加元素,它能够正常工作 TreeSet未添加最后的元素

package stackoverflowtest;

import java.util.ArrayList;
import java.util.List;
import java.util.TreeSet;

public class Main {

    public static void main(String[] args) {

        List<String> sets = new ArrayList<>();

        sets.add("10");
        sets.add("9");
        sets.add("8");
        sets.add("7");
        sets.add("6");
        sets.add("4");
        sets.add("3");
        sets.add("3");
        sets.add("3");
        sets.add("2");
        sets.add("2");
        sets.add("2");
        sets.add("1");
        sets.add("0");

        TreeSet<String> set = new TreeSet<>();
        set.addAll(sets);

        System.out.println(set);
        System.out.println(set.descendingSet());

        System.out.println(set.first());
        System.out.println(set.last());
    }
}

你的输出:

[0, 1, 10, 2, 3, 4, 6, 7, 8, 9]
[9, 8, 7, 6, 4, 3, 2, 10, 1, 0]
0
9
英文:

you can take this one i do Treeset with ArrayList instead of Array you can add elements
It work fine TreeSet未添加最后的元素

package stackoverflowtest;


import java.util.ArrayList;
import java.util.List;
import java.util.TreeSet;

public class Main {

    public static void main(String[] args) {
        
        List&lt;String&gt; sets= new ArrayList&lt;&gt;();
        
        sets.add(&quot;10&quot;);
        sets.add(&quot;9&quot;);
        sets.add(&quot;8&quot;);
        sets.add(&quot;7&quot;);    
        sets.add(&quot;6&quot;);
        sets.add(&quot;4&quot;);
        sets.add(&quot;3&quot;);
        sets.add(&quot;3&quot;);
        sets.add(&quot;3&quot;);
        sets.add(&quot;2&quot;);
        sets.add(&quot;2&quot;);
        sets.add(&quot;2&quot;);
        sets.add(&quot;1&quot;);
        sets.add(&quot;0&quot;);
        
        TreeSet&lt;String&gt; set = new TreeSet&lt;&gt;();
        set.addAll(sets);
        
        System.out.println(set);        
        System.out.println(set.descendingSet());
        
        System.out.println(set.first());
        System.out.println(set.last());
        
           
    }
}

Your output

[0, 1, 10, 2, 3, 4, 6, 7, 8, 9]
[9, 8, 7, 6, 4, 3, 2, 10, 1, 0]
0
9

答案3

得分: 0

这不是在Java中打印TreeSet的方式。

以下是你应该使用的方式:

for(Integer number : set){
    System.out.println(number);
}

直接打印Lists、Arrays、Sets或任何类型的集合都会得到无法使用的结果。

此外,你没有正确地将项目添加到TreeSet中。应该是:

for(int i: arr){
    set.add(i);
}
英文:

That's not how you print a TreeSet in java.

This is what you should be using:

for(Integer number : set){
    System.out.println(number);
}        

Directly printing out Lists, Arrays, Sets or any sort of collection will always give you an unusable result.

Furthermore, you aren't properly adding items to the TreeSet. It should be:

for(int i: arr){
    set.add(i);
}

huangapple
  • 本文由 发表于 2020年10月10日 01:39:10
  • 转载请务必保留本文链接:https://go.coder-hub.com/64284825.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定