设为首页 加入收藏

TOP

Java中如何在Arraylist中实现冒泡排序的问题
2015-08-31 21:23:05 来源: 作者: 【 】 浏览:18
Tags:Java 何在 Arraylist 实现 冒泡 排序 问题

众所周知,冒泡排序法在一般数组中就3步,


然而,在集合中就不是简单的交换一下了,因为交换之后,必须保证新的值被重新设置到集合中去。那么变难了吗?实际上更简单了:


原理还是交换,不过不需要媒介temple 了。


具体代码见下:


*********************工人类**********************


package com.xtkj.worker;
public class Worker{
? ? int id;
? ? String name;
? ? int age;
? ? double salary;


? ? public? Worker(){}? //构造方法
? ? public Worker(int id,String name, int age,double salary ) {
? ? ? ? this.id = id;
? ? ? ? this.name = name;
? ? ? ? this.age = age;
? ? ? ? this.salary = salary;
? ? }
? ? public String getName() {
? ? ? ? return name;
? ? }
? ? public void setName(String name) {
? ? ? ? this.name = name;
? ? }
? ? public int getId() {
? ? ? ? return id;
? ? }
? ? public void setId(int id) {
? ? ? ? this.id = id;
? ? }
? ? public double getSc() {
? ? ? ? return salary;
? ? }
? ? public void setSc(double salary) {
? ? ? ? this.salary = salary;
? ? }
? ? public int getAge() {
? ? ? ? return age;
? ? }
? ? public void setAge(int age) {
? ? ? ? this.age = age;
}
? ?
? ? public Worker getNext(){
? ? ? ? return this.getNext();
? ? }
? ?
}


*******************方法类(这里只讲解冒泡排序)***************


package com.xtkj.worker;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Method {
? ? public static List workerlist = new ArrayList();
? ? //按薪水由高到低排序
? ? ? ? double temp;
? ? ? ? double a=0;
? ? ? ? double b=0;
? ? ? ? void sort(){? ? ? ?
? ? ? ? ? ? System.out.println("按员工薪水从高到低排序结果为:");
? ? ? ? ? ? for(int i=0;i? ? ? ? ? ? ? ? for(int j=0;j? ? ? ? ? ? ? ? ? ? a=workerlist.get(j).getSc();
? ? ? ? ? ? ? ? ? ? b=workerlist.get(j+1).getSc();
? ? ? ? ? ? ? ? ? ? if(a//? ? ? ? ? ? ? ? ? ? ? ? temp=a;
? ? ? ? ? ? ? ? ? ? ? ? workerlist.get(j).setSc(b);? //注意:这里是把值设置到集合中去
//? ? ? ? ? ? ? ? ? ? ? ? a=b;             
? ? ? ? ? ? ? ? ? ? ? ? workerlist.get(j+1).setSc(a); //简单的 a与b 交换,改变的只是从集合中取出来的结果,集合里面的元素并没有改变
//? ? ? ? ? ? ? ? ? ? ? ? b=temp;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }


*****************界面类(测试类)**********************


package com.xtkj.worker;
?
import java.util.Scanner;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
Method method = new Method();
boolean b = true;
while(b){
System.out.println();
System.out.println("*********************欢迎进入职员薪水管理系统***********************");
System.out.println("请选择以下操作:");
System.out.println("1.添加新员工");
System.out.println("2.查询员工信息");
System.out.println("3.显示所有员工信息");
System.out.println("4.修改员工薪水");
System.out.println("5.删除员工信息");
System.out.println("6.薪水由低到高排列");
System.out.println("7.统计员工平均工资和最低、最高工资");
System.out.println("8.退出本系统");
Scanner reader=new Scanner(System.in );
System.out.println("请输入功能:");
int ab = reader.nextInt();
switch(ab)
{
case 1:
method.add();
break;
case 2:
method.find();
break;
case 3:
method.showAll();
break;
case 4:
method.updatesal();
break;
case 5:
method.delete();
case 6:
method.sort();
break;
case 7:
method.statics();
break;
case 8:
System.out.println("已退出职员薪水管理系统!");
b = false;
}
}
Worker wr=new Worker();
?
}
?
}
运行结果如下:



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇格式化输出和printf命令 下一篇read命令读取用户输入

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: