`

无聊写Code

    博客分类:
  • java
阅读更多
package edu.qdkj.main;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import java.util.Map.Entry;

public class Main {

	/**
	 * 随机的产生 num 个随机数
	 * 
	 * @return
	 */
	public static List randomNewList(List<Integer> list, int num) {
		List<Integer> returnList = new ArrayList<Integer>();
		for (int i = 0; i < num; i++) {
			int index = (int) (Math.random() * list.size());
			returnList.add(list.get(index));
		}
		return returnList;

	}

	/**
	 * 数列累加
	 * 
	 * @param list
	 * @return
	 */
	public static int sumList(List<Integer> list) {
		int sum = 0;
		for (Integer i : list) {
			sum += i;
		}
		return sum;
	}

	/**
	 * 将 List<List> 按照 List 的sum 进行排序 取出 list ,放在 list<map>中 map 的 key 是 i
	 * value 是 abs(sum) - Wg(最好)
	 * 
	 * @param list
	 * @param staticNum
	 *        
	 *  @param  Sort 默认是升序排列,排序模式 desc 降序
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public static List<List> sortList(List<List> list, int staticNum,
			final String sort) {
		Map<List, Integer> map = new HashMap<List, Integer>();
		for (List l : list) {
			map.put(l, Math.abs(sumList(l) - staticNum));
		}
		List<Map.Entry<List, Integer>> list2 = new ArrayList<Map.Entry<List, Integer>>(
				map.entrySet());
		Collections.sort(list2, new Comparator<Map.Entry<List, Integer>>() {
			public int compare(Entry<List, Integer> o1, Entry<List, Integer> o2) {
				if ("desc".equals(sort)) {
					return o2.getValue() - o1.getValue();//降序
				} else {
					return o1.getValue() - o2.getValue();
				}

			}
		});
		return mapToList(list2);

	}

	/**
	 * 根据 map的 key 将map 变成list
	 * 
	 * @param map
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public static List mapToList(List<Map.Entry<List, Integer>> list) {
		List<List> returnList = new ArrayList<List>();
		for (Map.Entry<List, Integer> l : list) {
			returnList.add(l.getKey());
		}
		return returnList;
	}

	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		List<List> list = new ArrayList<List>();
		List<Integer> list1 = new ArrayList<Integer>();
		for (int i = 0; i < 10; i++) {
			list1.add(i);
		}
		List list2 = randomNewList(list1, 3);
		List list3 = randomNewList(list1, 3);
		List list4 = randomNewList(list1, 3);
		list.add(list2);
		list.add(list3);
		list.add(list4);
		System.out.println(list);
		System.out.print(sortList(list, 10, "desc"));

	}

}

 

分享到:
评论

相关推荐

    Code Maker

    程序员写程序的时候常常存在着这样一个问题,有很多代码都似曾写过,但有不完全相同,要经过修改才能使用。这种重复劳动既没有效率又感到很无聊,何不开发一套系统让他来为你完成重复无聊的工作,你也好偷偷懒学习...

    codeLines:代码行数统计

    codeLines开发环境:linux/vim代码行数统计无聊为了满足统计自己所写的代码行数的需要,写了这个程序编译程序,通过命令行参数传递自己想要统计的文件夹名字即可统计该文件夹下面所有的.c/.cpp/.h文件的行数,由于...

    school-cpp-project-starter:入门模板,用于在VS Code中进行无聊的学校项目

    带有代码格式化程序,调试器,任务,启动文件,makefile,所有设置的入门模板,用于无聊的,人为的学术C ++软件项目。 推荐的VS Code扩展 先决条件 gcc 6和g ++ 6 这不是硬性要求,但是如果您使用其他版本,请确保...

    超级无聊的web扫雷

    开发者还可能使用Git进行版本控制,以及VS Code、Sublime Text等编辑器来提高开发效率。 在实际项目中,Web扫雷可能进一步扩展,例如增加计时器功能、添加难度选择,或者采用响应式设计使得游戏在不同设备上都能...

    c#无聊的结果和我的认识

    在快捷方式属性的“Aguements”中输入"/x {ProductCode}",这里的{ProductCode}是你的产品代码,可以在项目属性中找到。 为了确保软件能在不同计算机上运行,你需要处理系统必备组件。在解决方案属性中,选择“系统...

    ZJU_ACM_All_Anwer 搞编程的都知道的浙江大学A 题库.本书 集了所有经 Z 题解集,集合并附 Mathimaticsumerical algorithms 数值算法

    1174 Skip Letter Code 不错的简单题 1175 Word Process Machine 简单题 1181 Word Amalgamation 简单题 1038 T9 无聊题,单词树 1330 DNA Translation 无聊题 1335 Letter Sequence Analysis 无聊题 ...

    浙江大学ACM题解/ZJU 题型分类

    1174 Skip Letter Code 不错的简单题 1175 Word Process Machine 简单题 1181 Word Amalgamation 简单题 1038 T9 无聊题,单词树 1330 DNA Translation 无聊题 1335 Letter Sequence Analysis 无聊题 ...

    hdoj:杭电OJ题目源码记录 —— a source code of hdoj acm problem archive

    原题文档介绍.md 是工具自动生成 (无聊没事干用 node 写了一个自动生成文档,源码在 auto-md 文件夹下) 项目结构 - src #cpp 题目练习源文件,包括原题目 - auto-md #md文档生成工具 详情查看 auto-md/README.md , ...

    PsychoBot:我的私人Discord Bot的源代码-ps source code

    精神宝 我的私人Discord Bot的源代码。 使用!commands功能可获取该机器人的可用命令列表。... 这个机器人程序是一个有趣的项目,当我无聊时就可以从事该项目,您可以根据自己的喜好进行任何更改。

    milestone-project-1:为Code Institute的无聊堆栈Web开发课程的Milestone Project 1建立的个人网站

    字体家族:“蒙特塞拉特”,无衬线; 字体家族:“ Parisienne”,草书; 字体家族:“ Shippori Mincho”,衬线; 我的个人网站 这是一个个人网站,广告迈克尔·沃尔什(Michael Walsh)的技能和工作能力。...

    code-creation-kit:该套件可用作任何编程语言的代码生成器。-开源

    现在有点无聊。 您可以轻松地在电子表格中收集所有选项,包括任何文档。 仅从电子表格数据中生成代码和用户文档不是很好吗? 这是code-creation-kit的用处。code-creation-kit主要包括一个文本编译器,可用于为任何...

    RegisterFormAngular-Code:用MEAN STACK源代码注册表单-Form source code

    这种形式的特殊之处在于它不是无聊的通用形式,例如静态形式;它不是静态形式。 此表格的目标是提供良好的用户体验。 我使用什么技术 :red_question_mark: 好吧,我创建了这个应用程序,以实践一些与Angular , ...

    精品搜索导航网站search纯JS源码.zip

    简洁的浏览器主页,采用原生js编写,可选择不同的搜索引擎,展示网址收藏,查看天气,本地设置,无聊时玩玩小游戏以及小工具合集… 偏向练手,代码中可能会出现风格混乱、命名不规范、每次推送代码变动过多等问题 ...

    系统资源占用器 - 系统资源占用器 - 使用易语言开发.zip

    系统资源占用器 - 系统资源占用器 - 使用易语言开发系统资源占用者系统资源占用器 - 系统资源占用器 - 使用易语言开发简介这个程序是我无聊时瞎写的,不喜勿喷程序功能可以占用系统资源/拖慢系统运行,并且占用管理...

    精品搜索导航网站search纯JS源码

    简洁的浏览器主页,采用原生js编写,可选择不同的搜索引擎,展示网址收藏,查看天气,本地设置,无聊时玩玩小游戏以及小工具合集… 偏向练手,代码中可能会出现风格混乱、命名不规范、每次推送代码变动过多等问题 ...

    search搜索导航纯JS源码下载

    简洁的浏览器主页,采用原生js编写,可选择不同的搜索引擎,展示网址收藏,查看天气,本地设置,无聊时玩玩小游戏以及小工具合集... 偏向练手,代码中可能会出现风格混乱、命名不规范、每次推送代码变动过多等问题 ...

    仿webqq的webos框架zos,基于hoorayos2.0移植的纯html+js版本,后端语言.net

    ** 项目地址:http://code.google.com/p/hoorayos ** 移植:无聊hyf 博客地址:http://blog.csdn.net/sweetsuzyhyf ** 时间:2013-01-28 ** 说明:基于2.0版本的移植,前端纯html+js,部分功能和样式采用了...

    matlab代码sqrt-physics-code:看到普物上只有matlab,不禁很悲伤,就把matlab代码拿mathematica改写了

    平时闲着无聊写的 看到普物上只有 matlab,不禁很悲伤,就把 matlab 代码拿 mathematica 改写了一遍。 预览 P21 {y + (g x^2 Sec[\[Theta]]^2)/(2 v^2) == x Tan[\[Theta]]}~Solve~v $$ \left{\left{v\to -\frac{\...

    Python自学——机器学习Machine learning

    Python pycharm learning code text record (7) 文章编号:Python学【2020】007号 日期:2020-02-18 文章为日常学习记录,以备温习使用,同时作为像我一样的新人学习使用,内容属于学习记录,版权归视频学习提供...

Global site tag (gtag.js) - Google Analytics