问个算法的问题

呢喃的歌声1 2012-11-06 12:13:38
我现在有数据list{1:2,1:3,1:4,2:5,2:6,2:7} 现在要进行分组显示成 list{1:2=3=4,2:5=6=7}这样的数据 谁给写个方法啊我写了两个小时没搞出来我是写flex 谁能写个方法用下大神
...全文
244 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Inhibitory 2012-11-07
  • 打赏
  • 举报
回复
list{1:2,1:3,1:4,2:5,2:6,2:7} => list{1:2=3=4,2:5=6=7} 观察可以发现1:, 2:, ..., n: 作为key,而后面的部分是value的内容,所以可以用map来处理这个问题,如果要有序,可以使用TreeMap
呢喃的歌声1 2012-11-06
  • 打赏
  • 举报
回复
哈 下午写好了 二楼不错...我的方法比较土没二楼漂亮
YuexiaQingsi 2012-11-06
  • 打赏
  • 举报
回复
同楼上所说。。。

public static void main(String[] args) {
	List<String> oL = new ArrayList<String>();
	oL.add("1:2");
	oL.add("1:3");
	oL.add("1:4");
	oL.add("1:5");
	oL.add("2:2");
	oL.add("2:3");
	oL.add("2:4");
	oL.add("2:5");
	oL.add("3:2");
	oL.add("3:3");
	oL.add("3:4");
	oL.add("3:5");

	List<String> oR = new ArrayList<String>();
	String a = oL.get(0);
	String t = a.substring(0, a.indexOf(":"));

	for (int i = 1; i < oL.size(); i++) {
		String o = oL.get(i);
		String s = o.substring(0, o.indexOf(":"));
		String e = o.substring(o.indexOf(":") + 1);
		if (t.equals(s)) {
			a += "=" + e;
		} else {
			oR.add(a);
			a = o;
			t = s;
		}
		if (i == oL.size() - 1) {
			oR.add(a);
		}
	}

	System.out.println(oR);
}
haorengoodman 2012-11-06
  • 打赏
  • 举报
回复
这个事算法? 我写了一个针对你这个题目的代码,但是没有半点算法的概念
public static void main(String[] args) {
		//我现在有数据list{1:2,1:3,1:4,2:5,2:6,2:7} 
		//现在要进行分组显示成 list{1:2=3=4,2:5=6=7}这样的数据 
		List<String> list = new ArrayList<String>();
		list.add(0, "1:2");
		list.add(1, "1:3");
		list.add(2, "1:4");
		
		list.add(3, "2:5");
		list.add(4, "2:6");
		list.add(5, "2:7");
		List<String> list1 = new ArrayList<String>();
		List<String> list2 = new ArrayList<String>();
		
		for(int i=0;i<list.size();i++){
			if(list.get(i).contains("1:"))
				list1.add(list.get(i).substring(2));
			else if(list.get(i).contains("2:"))
				list2.add(list.get(i).substring(2));
		}
		
		list.clear();
		
		String str = "";
		for(int i=0;i<list1.size();i++){
			str += list1.get(i);
		}
		System.out.println(str);
		list.add(0,str);
		
		String str1 = "";
		for(int i=0;i<list2.size();i++){
			str1 += list2.get(i);
		}
		System.out.println(str1);
		list.add(0,str1);
		
	}
呢喃的歌声1 2012-11-06
  • 打赏
  • 举报
回复
是的
引用 1 楼 go12355 的回复:
list 里存的 String么?
是的
小双 2012-11-06
  • 打赏
  • 举报
回复
list 里存的 String么?

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧