java 板


LINE

其实问题有点模糊 不过我想这应该是程式语言跟java的问题 因为c都是阵列拉~指标啦~等等可以让你碰到底层的演算法 可是java并没有这样子 所以如果你一开始就学资料结构 学C 再来用java 会搞的很乱 实际上除非你自己写套件 不然像我 没学过演算法 没学过资料结构 没学过C 不知道什麽是指标 不知道什麽位移 更别说什麽tree了 对於只会打电动其他什麽都不会的情况下 一开始就碰java 然後我就照着java.util里面提供的套件去用 老实说,我根本就不知道里面到底在干麻!!! 其实我学习的顺序刚好跟大家相反 在这个问题 首先要厘清的是 insert get-->这些方法的定义是什麽? 物件的定义是什麽? 那笔资料的index->定义为何? 所以我只好公堂之上大胆假设一下 你的get是 1.XXObject get(); 这样吗? FIFO? LIFO? 还是 2.XXObject get(XXType index);这样吗 index是??? 先定义好模组的行为 再来讨论一下实作的方式跟细节 因为往往问题确定了,其解决的实作竟然是不可思议的简单!!! 所以你愿意分享一下你所规划的介面吗 (顺便要有注解喔) PS.在这里我只用我的想法来写测试案例 (所以想法肯定会跟原PO不同) XXXList xxxlist = instanceofXXXList(); xxxlist.insert(XXXBeanA("id022")); String key = "id01234"; XXXBeanA bean_null=xxxlist.getByKey(key); Asserts.equalsNull(bean_null); xxxlist.insert(XXXBeanA("id6789")); xxxlist.insert(XXXBeanA("id649")); xxxlist.insert(XXXBeanA("id99789")); Asserts.equals("id99789",xxxlist.getLast().getId()); Asserts.equalsNotNull(xxxlist.getByKey("id649")); 在这里我定义了 void insert(XXXBeanA bean); XXXBeanA getBykey(String key); XXXBeanA getLast(); 三种行为及其相关的IO参数 (以上我都还没实作,保证编译全部红字!!!) 然後我就来找找到底用什麽方法会更有效率呢? 所以这种问题可以用TDD来思考喔!!!!! 然後getLast()真的很简单!!! 因为 XXXBeanA last_beanA = null; public void insert(XXXBeanA bean){ //放到按照演算法的容器里面 _handle(bean); //放置最後 last_beanA=bean; } public XXXBeanA getLast(){ return last_beanA; } 得到最後新增的物件用这样方式就可以达到了 连什麽演算法都不用!!! 以上的操作并没有考虑thread safe喔 ※ 引述《sudada (叽咕叽咕叽咕)》之铭言: : 各位好 : 最近遇到一个sorting的问题 : 假设我有一个List里面放我自订的class : 他必须是个排序好的状态 : 但是每次有新增或更新资料 我都必须取得那笔资料的index : 而且使用上get的使用机率应该会比insert高一点 : ^^^ : 这边修正一下... : 目前我有两种想法 : 第一 : 每次丢资料进去都call一次sort : 不过这样没办法直接知道我刚刚新增的那笔资料 : 到底会被丢到哪里去 : 所以sort完以後还要再抓一次index? : 这种方法我觉得完全不可行...... : 第二 : 跑回圈用自己的compare方式找到适当的位置 : 直接call insert : 这样"感觉上"快很多 : 但是问题出在用List的资料结构的话 : 每次都必须从头开始 cost应该是O(n)? : 如果要改进这里势必要改资料结构 : 用binary tree又怕会影响整体get的效能 : 想请问大家会怎麽取舍 : 谢谢 -- --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.29.29.131 ※ 编辑: swpoker 来自: 163.29.29.131 (06/19 14:50)
1F:→ swpoker:我是不是有改到推文阿~刚刚没注意到~不好意思阿 06/19 14:51
2F:→ swpoker:getLast()->得到最後新增物件 06/19 15:19
3F:推 KanoLoa:我重看了几次,还是不懂你这篇再回原PO的那些问题...orz 06/19 20:39
4F:→ swpoker:老实说~我也不太懂原PO的问题在哪? 06/20 09:15







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP