| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1304 人关注过本帖
标题:TreeSet 为什么在使用subSet()时出现指针错误,程序如下
只看楼主 加入收藏
s人圭日月
Rank: 2
等 级:论坛游民
帖 子:36
专家分:27
注 册:2016-6-22
结帖率:50%
收藏
已结贴  问题点数:36 回复次数:1 
TreeSet 为什么在使用subSet()时出现指针错误,程序如下
程序代码:
package LianXi2;

import java.util.Iterator;
import java.util.TreeSet;

public class UpdateStu implements Comparable {
    String name;
    long id;
   

   


    private UpdateStu(String name, long id) {
        super();
        this.name = name;
        this.id = id;
    }

    public int compareTo(Object o) {
        UpdateStu updat = (UpdateStu) o;
        int result = id > updat.id?1:(id>updat.id?0:-1);
        return result;
    }

   

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public static void main(String[] args) {
        UpdateStu stu1 = new UpdateStu("王小明",200);
        UpdateStu stu2 = new UpdateStu("王2明",500);
        UpdateStu stu3 = new UpdateStu("王3明",3400);
        UpdateStu stu4 = new UpdateStu("王4明",120);
        UpdateStu stu5 = new UpdateStu("王5明",530);
       

        TreeSet tree = new TreeSet();
        tree.add(stu1);
        tree.add(stu2);
        tree.add(stu3);
        tree.add(stu4);
        tree.add(stu5);
       

        Iterator it = tree.iterator();
        while(it.hasNext()){
            UpdateStu stu = (UpdateStu) it.next();
            System.out.println(stu.getName()+""+stu.getId());
        }
       

        System.out.println("---------------------------------------");
       

        it = tree.headSet(stu2).iterator();
        while(it.hasNext()){
            UpdateStu stu = (UpdateStu) it.next();
            System.out.println(stu.getName()+""+stu.getId());
        }
       

        System.out.println("---------------------------------------");
       

        it = tree.subSet(stu2,stu3).iterator();
        while(it.hasNext()){
            UpdateStu stu = (UpdateStu) it.next();
            System.out.println(stu.getName()+""+stu.getId());
        }

    }

}


上述代码    it = tree.subSet(stu2,stu3).iterator();  这最后段代码,
改成 it = tree.subSet(stu2,stu4).iterator();
将出现指针错误。十分疑惑!
为什么,想不通。
2016-12-08 22:25
xu2738461746
Rank: 2
等 级:论坛游民
威 望:1
帖 子:39
专家分:70
注 册:2014-9-22
收藏
得分:36 
我觉得应该是set集合中元素排序为stu4, stu1,stu2,stu5,stu3,所以截取stu2 到stu4会出现空指针错误。
2016-12-10 16:53
快速回复:TreeSet 为什么在使用subSet()时出现指针错误,程序如下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016360 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved