作者pelicanper (派立肯)
看板java
标题Re: [问题] 字串计数
时间Fri Oct 10 18:32:48 2014
※ 引述《smith80512 (Henry)》之铭言:
: 想请问版上前辈们
: 文章内容已经分割成字串阵列
: 如何计数该阵列重复的字串?
: 并指显示最多出现和次多出现的字串
: 以及利用ArrayList回传?
1. 使用TreeMap, key: 字串 value:显示次数
2. 在Constructor里面写Comparator,并Override compare method
把你要的logic写入
3. for each所有String array,插入TreeMap,
if 已经插入 value++
else 插入新纪录 value = 1
4. TreeMap就已经依显示次数排好序
如果每次都要collection sort是有一点没有效率
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 121.98.152.58
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1412937171.A.35A.html
1F:→ cyclone350: collection sort只会有一次喔~~ 最後结算时才会 sort 10/10 19:56
你可能要看一下Collections 的sort用的是哪一种data structure
不是甚麽东西都可以丢到Collections去sort...
Map就不行,请问用Map要怎麽样转成List再sort,愿闻高见
2F:推 HuangJC: 一般 sort 应该都是用 qsort 实作的吧,程式短又有效率 10/10 20:01
3F:→ HuangJC: 可是我曾有一个需求:插入一个新值在已sort的阵列内resort 10/10 20:02
4F:→ HuangJC: 这种 resort 不知它效率如何,可能就要自己打造了 10/10 20:02
5F:→ HuangJC: 为什麽有这需求呢?因为我要收比如5000个有效数,剔除重 10/10 20:03
6F:→ HuangJC: 覆;因此我就先读取5000笔数字,排序後才容易剔除重覆 10/10 20:03
7F:→ HuangJC: 第一次做完,比如有500笔重覆,那就再读500笔,再resort 10/10 20:04
8F:→ HuangJC: 总之就一直补读重覆的部份,最後也许读了7000笔才凑足 10/10 20:04
9F:→ HuangJC: 目前我是手动做(行政),很累;如果要再做我就会写程式了 10/10 20:05
※ 编辑: pelicanper (121.98.152.58), 10/10/2014 21:05:55
※ 编辑: pelicanper (121.98.152.58), 10/10/2014 21:06:45