【问题描述】明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。Input Param n 输入随机数的个数 inputArray n 个随机整数组成的数组 Return Value OutputArray 输出处理后的随机整数

【输入形式】输入多行,先输入随机整数的个数n,再输入相应个数的整数

【输出形式】输出一行,处理后的结果

【样例输入】 11

         10 20 40 32 67 40 20 89 300 400 15

【样例输出】10 15 20 32 40 67 89 300 400

解法一:系统排序,手动去重

 public static void main(String[] args){Scanner scan = new Scanner(System.in);int N = scan.nextInt();int[] arr = new int[N];for(int i=0;i<N;i++)arr[i] = scan.nextInt();Arrays.sort(arr);int flags = arr[0];for(int i=0;i<N;i++){if(i==0)System.out.print(arr[i] + " ");else{if(arr[i]==flags)continue;else{System.out.print(arr[i] + " ");flags = arr[i];}}}scan.close();}

解法二:利用TreeSet数据结构,自动排序加去重

     public static void main(String[] args){Scanner scan = new Scanner(System.in);int N = scan.nextInt();int[] arr = new int[N];for(int i=0;i<N;i++)arr[i] = scan.nextInt();TreeSet set = new TreeSet(new Comparator(){@Overridepublic int compare(Object o1,Object o2){if(o1 instanceof Integer&& o2 instanceof Integer){Integer i1 = (Integer)o1;Integer i2 = (Integer)o2;return i1.intValue()-i2.intValue();}throw new RuntimeException();}});for(int i=0;i<N;i++){set.add(arr[i]);}for(Object o : set){if(o instanceof Integer){Integer i = (Integer)o;System.out.print(i.intValue());System.out.print(" ");}elsethrow new RuntimeException();}scan.close();}

Java训练work3.Exer3---去重与排序相关推荐

  1. Java训练work3.Exer5---供应商问题

    [问题描述] 有n个某种商品供应商,某地有m个商店,商店需要从供应商那里进货该商品,每个供应商的供应能力有上限,每个商店都有自己的商品需求量(need[i]:表示第i个商店的需求),每个供应商运送单位 ...

  2. Java训练work3.Exer4---学生成绩

    [问题描述]老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问.当然,老师有时候需要更新某位同学的成绩. [输入形式]输入包括多组测试数据.每组输入第一行是两个正整数N和M(0 & ...

  3. Java训练work3.Exer2---跳跃最大长度

    [问题描述]给一个非负整数数组.假设你最初的位置为0,数组中每一个元素的值代表你能跳跃最大的长度,判断是否能达到数组的最后一个位置 [输入形式]第一行数组长度 第二行输入一个非负整数数组 [输出形式] ...

  4. Java训练work3.Exer6---进制转化

    [问题描述]写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串.(多组同时输入) [输入形式]输入一个十六进制的数值字符串. [输出形式]输出该数值的十进制字符串. [样例输入]0x ...

  5. java 数组去重排序_Java实现的数组去重与排序操作详解

    本文实例讲述了Java实现的数组去重与排序操作.分享给大家供大家参考,具体如下: 这里演示Java实现数组去重.排序操作 文中的示例源码编写基于Jdk1.6+.junit4.8.2 java.util ...

  6. Java中List排序去重、排序的3种方式

    1. 代码 //Java中快速对列表排序去重.排序 public class ListUtil {public static void main(String[] args) {List<Str ...

  7. java随机数去重排序_数组去重及排序/0~10随机数字/字符串中出现最多的字符及次数...

    数组去重及排序: var arr = [1,5,1,2,6,8,1,81,9,0]; for(var i=0;i for(var j=i+1;j if(arr[i] == arr[j]){ arr.s ...

  8. Java Stream 流集合去重排序

    文章目录 1. list去重 2. 根据对象中的某个字段进行list去重 3. 排序 4. 排序并去重 1. list去重 List<String> list = new ArrayLis ...

  9. MapReduce基础开发之二数据去重和排序

    因Hadoop集群平台网络限制,只能在eclipse里先写好代码再提交jar到集群平台namenode上执行,不能实时调试,所以没有配置eclipse的hadoop开发环境,只是引入了hadoop的l ...

最新文章

  1. 将NetBIOS名称解析为IP地址的常用方法
  2. 批量下载的实现及java.lang.IllegalStateException异常
  3. Wcf 基础教程 服务寄宿之 Windows 服务寄宿
  4. 2017 9月java答案_2017年9月计算机二级JAVA试题及答案
  5. java 百度api接口开发_百度熊掌号使用Java工具类对接API推送接口进行文章推送实例详解...
  6. 图像的频率谱和功率谱代表什么_视频/图像质量评价综述(三)
  7. 矩阵乘法 算法训练 试题_线性代数入门——矩阵乘法的定义及其意义
  8. 利用函数求数组中的最大值
  9. 《设计模式之美》课程笔记之DDD开发实战
  10. windows安装JDK步骤
  11. Windows Neptune的安装
  12. 计算机为什么不用三十二进制,32位进制导致2038年问题
  13. ACM PKU 题目分类(完整整理版本)
  14. 关于Win11家庭版安装Ansys2021R1遇到的问题
  15. 二烷基二硫代磷酸锌添加剂的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  16. CentOS 出现 No packages marked for update
  17. Single Image Dehazing via Multi-Scale Convolutional Neural Networks
  18. 修改mp3图片和信息——BesMp3Editor
  19. 咸鱼Micropython—SPI
  20. LVGL笔记10--lv_cont容器

热门文章

  1. kaldi部分训练方法DNN-HMM模型
  2. envi读取格式ang 还是mtl_ENVI学习笔记一 软件入门
  3. Python爬虫——教你js逆向爬取网易云评论
  4. 11.js的new操作符做了哪些事情?
  5. 【C语言】(用函数实现)请给小学生随机出10道加减法的练习题,要求:10以内的加减法,并且能批改。
  6. VB实现游戏进程多开
  7. 数据中心技术最新发展趋势
  8. cocos2d-xnbsp;图片纹理优…
  9. 【Web开发】Python实现Web服务器(Flask测试,cesium.js/echarts.js/three.js)
  10. 为什么码农要了解业务?(文末有福利)