永发信息网

JAVA中对String数组根据字符长度进行分组并且排序

答案:2  悬赏:50  手机版
解决时间 2021-04-05 21:13
JAVA中对String数组根据字符长度进行分组并且排序
最佳答案
private static List stringGroupO(String[] strs){
List list1 = new ArrayList();
List list2 = new ArrayList();

for(int i=0;iMap param = new HashMap();
param.put(strs[i].length(), strs[i]);
list1.add(param);
list2.add(strs[i].length());
}
List newList = new ArrayList(new HashSet(list2));
List resultList = new ArrayList();
for(int j =0;jList list = new ArrayList();
for(int k=0;kMap map = (Map)list1.get(k);
if(map.get(newList.get(j)) != null){
list.add(map.get(newList.get(j)));
}
}
resultList.add(list);
}
return resultList;
}
全部回答
好像也很复杂...
String[] str = {"1", "2", "3", "66", "54", "513", "323", "12", "121"};
Map> map = new HashMap>(); //按照长度区分数据
Set indexSet = new HashSet(); //长度去重
for (String string : str) {
    int length = string.length();
    List list = map.get(length);
    if (list == null) {
        list = new ArrayList();
    }
    list.add(string);
    Collections.sort(list); //默认排序
    indexSet.add(length);
    map.put(length,list);
}
List indexList = new ArrayList();
for (Integer integer : indexSet){
    indexList.add(integer);
}
Collections.sort(indexList); //长度默认排序
JSONArray jsonArray = new JSONArray();
for (Integer integer : indexList){
    List valueList = map.get(integer);
    String[] strings = valueList.toArray(new String[valueList.size()]);
    jsonArray.add(strings);
}
System.out.println(jsonArray.toString());
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
二郎神杀了大金乌的女朋友大金乌怎么没跟他拼
德赛西威 有适用的高德导航地图吗
方孔试验筛和穿孔板试验筛有什么不同
第一次相亲隐瞒自己真实年龄的男人能要吗
对母校的毕业赠言小学,写给母校的赠言
根据下列动物的特征回答问题:A.蜗牛 B.蜂
合同签订后末实施几年后算无效
泸州高中简介
冬季荷兰猪掉了几根毛有事吗
茶叶有多少种?哪种最好??
买红米4X给不给内存卡?
如图是奥迪汽车的标志,则标志图中相邻两个圆
久久丫的现捞鸭掌好不好吃
杜牧关于枫叶的诗句,初二英语题!!!!!!
外网访问电脑上的网站正常,自己电脑访问却打
推荐资讯
墙上茅草四个字歇后语,猜四个字的歇后语,谜
特岗考试大学毕业才能考试吗
长安马自达3有保修期么?在保修期内修车要钱
怎样写借据有法律效力,欠条怎样具有法律效力
某同学从台阶向下跳到地面的软垫上.从接触软
令舍不同 是什么意思?
人贵有自知之明下一句,人贵有自知之明的后一
年中会议横幅标语,员工大会主持稿开场白
求解塔罗牌,圣杯首位正位 宝剑待从正位 圣杯
ikon的粉丝量大约是多少
家用车库的尺寸一般是多少?
孔子说的告诉我们在学习中要注意学习方法是哪
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?