求解答数组 不是很明白 高手的讲下谢谢 依次输入10个数,求最大值,然后反序输出这10个数。定义一个员工类,该类具有姓名(随机产生一个五个字符组成的字符串)、编号(要求不重复)、和工资三个属性。要求随意创建该类的10个对象,并求出其中工资最高和最低人的姓名和编号。今天将将数组 讲了二分查找和 冒泡 查找 冒泡还简单 就是二分查找 感觉有点吃力 就这两个 麻烦写代码的时候写下注释 我好理解 小弟在此谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.util.Arrays;import java.util.Random;public class TestSync { public static void main(String args[]) { Emp[] emps = { new Emp(1000), new Emp(2000), new Emp(5000), new Emp(3000), new Emp(4000)}; Arrays.sort(emps); System.out.println(emps); for (Emp e : emps) { System.out.println(e); } }}class Emp implements Comparable { String name; int no = 0; double salary; static int count = 0; Emp(double salary) { this.no = ++count; this.name = makeRandomName(); this.salary = salary; } private String makeRandomName(){//五个随即字符??有的坑爹啊。 int count = 0; StringBuffer sb = new StringBuffer(); while(count++ < 5){ int random = new Random().nextInt(); sb.append((char)(Math.abs(random)%25 + 65)); } return sb.toString(); } @Override public String toString() { return "no = " + no + ",name = " + name + ",salary = " + salary; } public int compareTo(Object o) { if (o instanceof Emp) { Emp e = (Emp) o; if (e.salary > this.salary) { return -1; } if (e.salary < this.salary) { return 1; } } return 0; }} import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Iterator;import java.util.List;import java.util.Scanner;public class ArraySort { /** * 依次输入10个数,求最大值,然后反序输出这10个数。 */ public static void main(String[] args) { List<Integer>list = new ArrayList<Integer>();//定义一个list集合 Integer [] array = new Integer[10]; //定义一个数组 int max = 0; System.out.println("请输入10个整数,以空格隔开:"); Scanner scanner = new Scanner(System.in); //循环输入十个数 for (int i = 0; i < 10; i++) { Integer num = (Integer)scanner.nextInt();//并把这些数添加到数组中 array[i] = num; } Arrays.sort(array);//升序排列数组 Collections.reverse(list);//反序排列list结合中的元素 max = array[array.length-1];//角标最大的即为最大值 for (int i = 0; i < array.length; i++) { list.add(array[i]);//把数组添加到list集合中(这时的数组已是按升序排列的) } Collections.reverse(list);//反序排列集合 for (Iterator iterator = list.iterator(); iterator.hasNext();) {//用迭代器遍历集合 Integer integer = (Integer) iterator.next(); } System.out.println("最大值是:"+max); System.out.println(list); }}====================================结果==============================================请输入10个整数,以空格隔开:2 3 4 5 1 9 8 7 6 0最大值是:9[9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 第一个你好好做吧,就是那样,第二题最大最小都出来了。可能你要的写法是for循环比较薪水,如果你能啃懂这个,对你以后也有帮助。。 菜鸟求教啊 很全的java.lang.String学习哦 来者给分(没分也学习了) main函数参数问题 请教有关FileInputStream读取资源文件的问题 请问,各位,怎样在win98中对java DSK配置,谢! 过两天去面试 前辈们帮帮忙啊 一个awt的问题,关于布局管理器 迷茫!请各位指点迷津!(答了就有分) 请问各位如果c++还比较熟的话,学会java是多长时间?一个星期?一个月内? 【阿里巴巴面试题】Java案例需求:去掉第二列第二个数为0的行... Socket编程问题 急!急!急 求学生学籍信息管理系统源码
import java.util.Arrays;
import java.util.Random;public class TestSync { public static void main(String args[]) {
Emp[] emps = { new Emp(1000), new Emp(2000),
new Emp(5000), new Emp(3000), new Emp(4000)};
Arrays.sort(emps);
System.out.println(emps);
for (Emp e : emps) {
System.out.println(e);
}
}
}class Emp implements Comparable {
String name;
int no = 0;
double salary;
static int count = 0; Emp(double salary) {
this.no = ++count;
this.name = makeRandomName();
this.salary = salary;
} private String makeRandomName(){//五个随即字符??有的坑爹啊。
int count = 0;
StringBuffer sb = new StringBuffer();
while(count++ < 5){
int random = new Random().nextInt();
sb.append((char)(Math.abs(random)%25 + 65));
}
return sb.toString();
} @Override
public String toString() {
return "no = " + no + ",name = " + name + ",salary = " + salary;
}
public int compareTo(Object o) {
if (o instanceof Emp) {
Emp e = (Emp) o;
if (e.salary > this.salary) {
return -1;
}
if (e.salary < this.salary) {
return 1;
}
}
return 0;
}
}
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;public class ArraySort { /**
* 依次输入10个数,求最大值,然后反序输出这10个数。
*/
public static void main(String[] args) {
List<Integer>list = new ArrayList<Integer>();//定义一个list集合
Integer [] array = new Integer[10]; //定义一个数组
int max = 0;
System.out.println("请输入10个整数,以空格隔开:");
Scanner scanner = new Scanner(System.in); //循环输入十个数
for (int i = 0; i < 10; i++) {
Integer num = (Integer)scanner.nextInt();//并把这些数添加到数组中
array[i] = num;
}
Arrays.sort(array);//升序排列数组
Collections.reverse(list);//反序排列list结合中的元素
max = array[array.length-1];//角标最大的即为最大值
for (int i = 0; i < array.length; i++) {
list.add(array[i]);//把数组添加到list集合中(这时的数组已是按升序排列的)
}
Collections.reverse(list);//反序排列集合
for (Iterator iterator = list.iterator(); iterator.hasNext();) {//用迭代器遍历集合
Integer integer = (Integer) iterator.next();
}
System.out.println("最大值是:"+max);
System.out.println(list);
}
}
====================================结果==============================================
请输入10个整数,以空格隔开:
2 3 4 5 1 9 8 7 6 0
最大值是:9
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]