首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >descendingIterator()和descendingSet() NavigableSet接口测试

descendingIterator()和descendingSet() NavigableSet接口测试
EN

Stack Overflow用户
提问于 2015-10-25 05:18:17
回答 1查看 361关注 0票数 0

我正在阅读Java上的文档,并决定测试NavigableSet接口的两种方法,如下所示。正如文档对descendingSet()所说的,返回的“视图”由原始的NavigableSet支持,所以对降序集的更改也反映在原始集中。。在测试这两个方法时,我没有看到使用descendingSet()方法对原始集进行任何更改。请解释一下原因?

代码语言:javascript
复制
import java.util.Iterator;
import java.util.NavigableSet;
import java.util.TreeSet;

public class NavigableSetLearning {

    public static void main(String[] args) {

        NavigableSet<String> original = new TreeSet<String>();
        original.add("1");
        original.add("2");
        original.add("3");
        original.add("4");
        //Usage of Descending Set Method
        NavigableSet reverse = original.descendingSet();
        System.out.println(original);
        System.out.println(reverse);
        System.out.println(original);

        // Usage of Descending Iterator Method

        /*Iterator it = original.iterator();

        while(it.hasNext()){
            System.out.print("Original"+it.next()+"\n");

        }

        Iterator reverse = original.descendingIterator();
        //System.out.println(original);
        while(reverse.hasNext()){
        System.out.println("Reversed"+reverse.next()+",");
        }

        Iterator itAgain = original.iterator();

        while(itAgain.hasNext()){
            System.out.println("Original Again"+itAgain.next()+",");

        }
        */


    }

}

我得到的输出如下:

代码语言:javascript
复制
[1, 2, 3, 4]
[4, 3, 2, 1]
[1, 2, 3, 4] // Was expecting change here as per the doc
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-25 05:25:29

这意味着,如果将元素移除或添加到从original派生的反向集合中,则对set内容的修改将反映在第一个集合中;它是同一个集合的另一个视图。

在删除或添加元素或调用descendingSet()时,不会违反为每个集合指定的顺序。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33326464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档