最代码官方的gravatar头像
最代码官方2016-04-08 18:56:10

北京快三走势图一定牛:java将List的数据转换为N列的算法演变

上海快三今日开奖走势国结果 www.6r52v.cn 最近遇到一个安卓客户端的需求,需要将服务端返回的json list的数据转换为n列m行的需求,算法有几次迭代,总算趋于完美,给牛牛们分享下:

转换为2列的算法:

Column column = null;
for (int i = 0; i < items.size(); i++) {
	Item _item = items.get(i);
	if (i % 2 == 0) {
		column = new Column();
		column.setColumn1(_item);
		columns.add(column);
	} else {
		column.setColumn2(_item);
	}

}

for (int i = 0; i < columns.size(); i++) {
	System.out.println(columns.get(i));
}

运行结果:

----------------
1 2
3 4
5 6
7 8
9
----------------

2.转换为3列的算法:

List<Column3> column3s = new ArrayList<Column3>();

Column3 column3 = null;
for (int i = 0; i < items.size(); i++) {
	Item _item = items.get(i);
	int idx = i % 3;// 算余数
	int div = i / 3;// 算商
	if (idx == 0) {
		column3 = new Column3();
		column3.setColumn1(_item);
		column3s.add(column3);
	} else {
		column3 = column3s.get(div);
		idx++;// 偏移1
		if (idx == 2) {
			column3.setColumn2(_item);
		} else if (idx == 3) {
			column3.setColumn3(_item);
		}
	}

}

for (int i = 0; i < column3s.size(); i++) {
	System.out.println(column3s.get(i));
}

System.out.println("----------------");

运行结果:

----------------
1 2 3
4 5 6
7 8 9
----------------

3.转换为n列的算法:

List<ColumnN> columnNs = new ArrayList<ColumnN>();

int n = 4;//列数,可以随意指定
ColumnN columnN = null;
for (int i = 0; i < items.size(); i++) {
	Item _item = items.get(i);
	int idx = i % n;// 算余数
	int div = i / n;// 算商
	if (idx == 0) {
		columnN = new ColumnN(n);
		columnN.getColumnNs().add(0, _item);
		columnNs.add(columnN);
	} else {
		columnN = columnNs.get(div);
		columnN.getColumnNs().add(idx, _item);
	}

}

for (int i = 0; i < columnNs.size(); i++) {
	System.out.println(columnNs.get(i));
}

运行结果:
----------------
1 2 3 4
5 6 7 8
9

----------------

完整算法请下载文件。


打赏

文件名:Main.java,文件大小:4.336K下载
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友
  • 华媒:荷兰超市提倡减少使用一次性塑料制品 2018-07-13
  • 抓住党的建设着力点,焕发全党蓬勃活力  2018-07-12
  • 湖州市从细从实依法治路 2018-07-12
  • 【新时代 新作为 新篇章】“煤老大”渐行渐远 新动能清风徐来 2018-07-11
  • 西部网(陕西新闻网)www.cnwest.com 2018-07-11
  • 平凡人生闪耀璀璨的生命光华——“中国网事·感动2017”颁奖典礼侧记 2018-07-10
  • 为什么截留信马克的帖子?这还有摆事实讲道理存在吗? 2018-07-10
  • 甘肃省酒泉市:推行“一办四室一中心”工作模式 2018-07-09
  • 马克思主义通过指导无产阶级革命建立起部分社会财富公有制而改变了人类历史发展进程,离开部分社会财富公有制的建立来谈“改变人类历史发展进程”纯粹是无稽之谈。 2018-07-08
  • 面包屑-热门标签-华商生活 2018-07-07
  • 湖南省首届科技创新战略咨询专家委员会成立 2018-07-06
  • 【新媒体矩阵】长城新媒体微信 2018-07-05
  • 87| 811| 262| 546| 315| 811| 733| 736| 818| 364|