`
tan4836128
  • 浏览: 27267 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

用集合实现排序,排序按对象中一个字段

J# 
阅读更多
package practice_index;
import java.util.ArrayList;
import java.util.List;
/*******
 * 用集合实现排序,集合中封装对象
 * @author tan
 * 
 *
 */
public class Index_collection {
	static List<person> list = new ArrayList<person>();
	public static void main(String[] args) {
		list.add( new person("tan",65));
		list.add( new person("yan",78));
		list.add( new person("hui",55));
		list.add( new person("jr",55));
		list.add( new person("aa",86));
		list.add( new person("bb",55));
		list.add( new person("cn",45));
		list.add( new person("dd",36));
		list.add( new person("ee",25));
		person p = null;
		person p1 = null;
		person p2 = null;
		//两个for循环,其中内循环是用于比较出从第一个对象到最后一个对象当中的最大(小)值,然后将最大(小)值放在最后(前)面
		//外循环就让内循环重复集合的size()次,这样,根据对象的某个数字型字段就可以实现排序了
		for(int i=0;i<list.size()&&list.size()>0;i++){	

			for(int j=0;j<list.size();j++){
				if(j == 0){
					continue;
				}
				p1 = (person)(list.get(j-1));
				p2 = (person)(list.get(j));
				//这是升序
				if(p1.getGrade() - p2.getGrade() >= 0){
					p = p1;
					p1 = p2;
					p2 = p;
					
					if(list.get(j) != null){
						list.remove(j);
						list.add(j, p);
					}
					if(list.get(j-1) != null){
						list.remove(j-1);
						list.add(j-1,p1);
					}
				}
				//这是降序
//				if(p1.getGrade() - p2.getGrade() < 0){
//					p = p1;
//					p1 = p2;
//					p2 = p;
//					
//					if(list.get(j) != null){
//						list.remove(j);
//						list.add(j, p);
//					}
//					if(list.get(j-1) != null){
//						list.remove(j-1);
//						list.add(j-1,p1);
//					}
//				}
			}
		}
		int a = list.size();
		for(int i=0;i<a;i++){
			
			//如果是降序,就直接写成第"i+1"名
			System.out.println("第 "+(list.size()-i)+" 名               "+list.get(i));
		}
	}
}
class person{
	private String name;
	private int grade;
	
	public person(String name,int grade){
		this.name = name;
		this.grade = grade;
	}
	
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getGrade() {
		return grade;
	}

	public void setGrade(int grade) {
		this.grade = grade;
	}

	public String toString(){
		return new String("姓名 :  "+name+"    得分:  "+grade);
	}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics