| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2571 人关注过本帖
标题:在Comparable接口实现里不使用ArrayList对象的优点
只看楼主 加入收藏
sdgjsddd
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-6-14
收藏
 问题点数:0 回复次数:10 
在Comparable接口实现里不使用ArrayList对象的优点
如题,各位请一定帮个忙呀.....我实在搞不懂为什么不能这样用,我这样用过也不影响结果,但领导就是不让这样用,还要说出为什么......请高手们帮帮忙......这样用有什么缺点
搜索更多相关主题的帖子: ArrayList Comparable 接口 优点 对象 
2008-02-26 15:27
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
LZ你是怎么实现的?

I'm here, as always...
2008-02-26 15:35
sdgjsddd
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-6-14
收藏
得分:0 
在Comparable接口的实现里只定义了排序规则而已,需要代码吗?
2008-02-26 15:42
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
缺点就是你只能按一种顺序来排序。例如写一个User类,你可以实现Comparable接口来定义通过username来排序,但是如果要求你按照age来排序的话怎么办呢?一般都是写一个Comparator来定义排序的顺序的

I'm here, as always...
2008-02-26 15:46
sdgjsddd
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-6-14
收藏
得分:0 
public class StringSortPrint implements Comparable<StringSortPrint> {
   
    /**
     * 用于处理字符串排序的字符串型属性
     */
    private String sortString;
    private ArrayList list = new ArrayList();
   
    /**
     * 给属性sortString赋值的构造函数
     *
     * @param string
     *        将该参数的值赋给属性string
     */
    public StringSortPrint(String string) {
        sortString = string;
    }
   
    /**
     * 默认构造函数
     */
    public StringSortPrint() {
    }
   
    /**
     * 以字符串长度为比较条件并以小到大的排序规则
     *
     * @param string
     *        将该参数进行排序
     *
     * @return
     *     string大于stringSort.string时返回真
     *     string小于stringSort.string时返回假
     *     string等于stringSort.string时返回假
     */
    public int compareTo(StringSortPrint string) {
        if (sortString.length() > string.sortString.length())
            return 1;
        else if (sortString.length() == string.sortString.length()) {
            return (string.sortString);
        }
        else
            return 0;
    }
     
    /**
     * 用容器类存储有效字串
     *
     * @param string
     *        有效字串
     */
    public void setList(String string) {
        list.add(new StringSortPrint(string));
    }
   
    /**
     * 将有效字串进行排序并打印
     */
    public void sortPrint() {
        StringSortPrint[] validString = new StringSortPrint[list.size()];
        list.toArray(validString);
        Arrays.sort(validString);
        for (StringSortPrint i : validString)
            System.out.println(i);
    }

   
    /**
     * 定义输出函数
     *
     * @return
     *     返回string值
     */
    public String toString() {
        return sortString;
    }
}

红字部分是要求去掉的,并要求说明有什么缺点,为什么要去掉ArrayList,请帮我看看呀...为什么呀!
2008-02-26 15:49
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
你领导是让你只改ArrayList还是让你不要用Comparable啊?

I'm here, as always...
2008-02-26 15:57
sdgjsddd
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-6-14
收藏
得分:0 
让我把Comparable里的ArrayList对象消失掉....并说明原因[bc02]
2008-02-26 16:00
sdgjsddd
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-6-14
收藏
得分:0 
这个接口实现只用来存储字串及实现排序比较规则的.....主要是这原因是什么.....[bc02]
2008-02-26 16:02
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
ArrayList类是个动态数组,添加和删除里面的元素效率很低,估计你领导就是让你换一个Collections类吧。

[[it] 本帖最后由 hwoarangzk 于 2008-2-26 16:06 编辑 [/it]]

I'm here, as always...
2008-02-26 16:05
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
https://hi.bccn.net/176848/viewspace-8963.html
我了解的一些区别,可以参考下,希望对你有用

I'm here, as always...
2008-02-26 16:07
快速回复:在Comparable接口实现里不使用ArrayList对象的优点
数据加载中...
 
   



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

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