`
tan4836128
  • 浏览: 27748 次
  • 性别: 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);
	}
}
分享到:
评论

相关推荐

    java集合某个字段按照中文拼音排序.docx

    对Java集合中的某个字段按照中文拼音排序可以使用多种方法,本文将介绍两种常见的方法。 方法一:使用Comparable接口 在Java中,我们可以使用Comparable接口来实现自定义排序。例如,我们可以创建一个Record类,...

    C# List OrderBy 动态多字段排序

    在上述代码中,`p =&gt; p.Age` 就是一个Lambda表达式,它告诉`OrderBy`按Person对象的Age属性进行排序。 然而,当我们需要根据多个字段进行排序时,可以连续调用`ThenBy`方法。例如,先按年龄排序,再按姓名排序: `...

    Android List(集合)中的对象以某一个字段排序案例

    Android List(集合)中的对象以某一个字段排序案例 ...Android List(集合)中的对象以某一个字段排序案例是非常重要的一部分,在实际开发中,我们需要根据实际情况选择合适的排序规则,使用Comparator接口来实现排序。

    集合对象排序

    例如,一个“学生”对象可能有“姓名”和“年龄”属性,以及“学习”和“玩耍”的方法。 排序,简单来说,就是按照特定规则调整对象的顺序。在Python等面向对象的编程语言中,我们可以对对象列表进行排序,不仅基于...

    C#实体类和实体类集合的自动排序

    本文将深入探讨如何在C#中实现实体类和实体类集合的自动排序,以及如何将它们绑定到控件如DataGridView以支持排序功能。 首先,让我们了解什么是实体类。实体类是代表数据库表或服务API中的一个记录的类。它通常...

    JAVA 对象数组按照多个属性进行排序

    例如,假设我们有一个`Person`类,包含`firstName`和`lastName`属性,我们想要先按姓氏排序,然后按名字排序: ```java class Person { String firstName; String lastName; // getters and setters } Person...

    C# IList多字段排序

    在标题提到的"IList多字段排序"中,我们将探讨如何使用`OrderBy()`和`ThenBy()`对实现了`IList&lt;&gt;`接口的对象列表进行排序。`OrderBy()`方法用于指定主要的排序条件,而`ThenBy()`则用于设置次要的排序条件。如果主要...

    List集合按照对象中某个属性排序通用工具类(按对象中某属性排序)

    在开发中,我们可能会遇到,我们会根据不同情况对一个List集合进行排序操作,为了方便List集合根据对象中的某一个属性进行排序,开发了此工具类:

    java中进行集合排序

    - **参数**:该方法接受两个参数:一个是需要排序的`List`对象,另一个是可选的`Comparator`对象,用于指定排序规则。 - **示例**:在提供的代码片段中,使用了`Collections.sort()`方法对`list`进行排序: ```...

    帆软:排序问题(通过帆软设置或者sql排序)

    1. **ORDER BY子句**:在帆软报表连接的数据源中,如果使用SQL查询数据,可以在查询语句末尾添加`ORDER BY`子句来指定排序字段及顺序。例如,`SELECT * FROM table ORDER BY column ASC/DESC`,`ASC`表示升序,`DESC...

    List对象去重和按照某个字段排序的实现方法

    在上面的代码中,我们首先创建了一个List对象,添加了五个People对象,然后使用HashSet删除了重复元素。结果显示,重复元素被删除成功。 接下来,让我们来看一下List对象的按照某个字段排序。List对象的排序可以...

    List&lt;map&gt;多字段组合排序

    List,List, Object&gt;&gt;,多字段组合排序。提供一个简易的思路,如果需要进行参考。

    List集合排序222222

    导入jar 包 调用 String[] arr1 = new String[1]; ... 参数1 排序的集合 参数2 排序的字段(与定义字段一致) 可多个 参数3 排序方式(asc desc) 暂时只支持String 和int的排序 可能有些BUG 敬请谅解

    Java实体类中Set按照对象的某个字段对set排序

    通过使用List集合和Comparator接口,我们可以轻松实现Set集合的排序,并获取到Set集合中对象的某个字段按照特定顺序排序后的结果。本文提供了实际的解决方案,希望对大家的学习和工作有所帮助。

    java 中文姓氏 排序

    如果我们需要对一个对象列表中的某个字段(如年龄)进行排序,可以创建一个 `Comparator` 实现。 ```java import java.util.*; import java.text.*; public class JobCandidateSort { public static void main...

    sql 按拼音首字母排序

    代码片段中展示了一个用于拼音排序的函数`F_PINYIN`,它接收一个`VARCHAR2`类型的参数`P_NAME`,并返回一个同样为`VARCHAR2`类型的结果,该结果是输入字符串每个汉字的拼音首字母的集合。为了实现这一功能,代码内部...

    List数据字段排序不关注数据库,直接排序

    具体做法是创建一个实现了 `Comparator` 接口的类,并在 `compare()` 方法中定义具体的排序逻辑。这里的排序逻辑可以基于对象的任意属性。 #### 示例代码分析 ```java import java.util.Comparator; @...

Global site tag (gtag.js) - Google Analytics