精华内容
下载资源
问答
  • java 对象数组排序

    2021-02-12 11:05:24
    输出: [z, C, a] 6、对象数组排序 要对一个对象数组排序 ,则要自己实现java.util.Comparator接口 例子: Common_User[] userListTemp=new Common_User[temp.size()]; Arrays.sort(userListTemp, new ...

    废话不多说直接奉上代码先:

    import java.util.*;

    import java.io.*;

    public class Main{

    static int [] dp = new int [1010];

    public static void main(String [] args)throws IOException{

    Mouse [] mice = new Mouse [1010];

    FileReader fr=new FileReader("in.txt"); //读取文件

    BufferedReader read = new BufferedReader(fr);

    String str = "";

    int n=1;

    while((str = read.readLine())!=null){

    String [] s= str.split(" ");

    mice[n] = new Mouse(); //对象实例化,很重要

    mice[n].weight = Integer.parseInt(s[0]);

    mice[n].speed =Integer.parseInt(s[1]);

    n++;

    }

    System.out.println(n);

    Arrays.sort(mice,1,n); //sort(int start,int end) 包括start索引,不包括end索引

    for(int i=1;i

    System.out.println(mice[i].weight+" "+mice[i].speed);

    }

    }

    }

    class Mouse implements Comparable{ //实现Comparable接口

    int weight;

    int speed;

    public int compareTo(Object o){ //重写compareTo方法

    Mouse m=(Mouse)o;

    return weight>m.weight?1:(weight==m.weight?0:-1);

    }

    }

    另附上Arrays.sort用法:

    1. 数字排序int[] intArray = new int[] { 4, 1, 3, -23 };

    Arrays.sort(intArray);

    输出: [-23, 1, 3, 4]

    2. 字符串排序,先大写后小写 String[] strArray = new String[] { "z", "a", "C" };

    Arrays.sort(strArray);

    输出: [C, a, z]

    3. 严格按字母表顺序排序,也就是忽略大小写排序 Case-insensitive sort

    Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);

    输出: [a, C, z]

    4. 反向排序, Reverse-order sort

    Arrays.sort(strArray, Collections.reverseOrder());

    输出:[z, a, C]

    5. 忽略大小写反向排序 Case-insensitive reverse-order sort

    Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);

    Collections.reverse(Arrays.asList(strArray));

    输出: [z, C, a]

    6、对象数组排序

    要对一个对象数组排序 ,则要自己实现java.util.Comparator接口

    例子:

    Common_User[] userListTemp=new Common_User[temp.size()];

    Arrays.sort(userListTemp, new PinyinComparator());

    PinyinComparator 实现了Comparator接口,重写了compare方法,来告诉Arrays按照什么规则来比较两个对象的大小。

    以上所述就是本文的全部内容了,希望大家能够喜欢。

    展开全文
  • data(){ return{ subjects:[ {sort:1,name:“aaa”}, {sort:3,name:“ccc”}, ...//对象数组排序方法 sortBykey(array, key) { return array.sort(function (a, b) { var x = a[key]; //如果要从大到小,把x,y互换就好

    data(){
    return{
    subjects:[
    {sort:1,name:“aaa”},
    {sort:3,name:“ccc”},
    {sort:2,name:“bbb”}
    ]
    }
    }

    this.subjects = this.sortBykey(this.subjects, “sort”);

    //对象数组排序方法
    sortBykey(array, key) {
    return array.sort(function (a, b) {
    var x = a[key]; //如果要从大到小,把x,y互换就好
    var y = b[key];
    return x < y ? -1 : x > y ? 1 : 0;
    });
    },

    展开全文
  • 用于基本数据类型的数组排序,用到的是Arrays类下的重载静态方法sort( ); 只需要调用sort方法就行,传入数组名为实参。 例如,对整型数组进行排序。 public class ArraysTest { public static void main...

            用于基本数据类型的数组排序,用到的是Arrays类下的重载静态方法sort( );

            只需要调用sort方法就行,传入数组名为实参。

    例如,对整型数组进行排序。

    
    public class ArraysTest {
    	
    	public static void main(String[]args) {
    		
    		int [] arr = new int[] {1,6,4,2,9,1,4};
    		
    		Arrays.sort(arr);
    		
    		System.out.println(Arrays.toString(arr)); //输出数组元素
    		
    		
    		
    	}
    }

            运行结果为:

            Arrays.toString()也是一个重载方法,传入数组名就回返回一个包含该数组所有元素的字符串。格式是:[a,b,c,d ] ; 

            使用Arrays.sort()进行排序,进行是升序排序。

            如果要对自定义类的对象数组进行排序呢。该类就需要实现Comparable接口,重写compareTo();在compareTo方法中需要表现出是对类的那个字段进行排序,并且可以升降排序

    下面对Person类举例,对其按age从大到小排序,如何age相等则按name从小到大排序。

    定义Person类

    
    public class Person implements Comparable<Person>{
    	
    	String name;
    	int age;
    	Person(){
    		
    	}
    	Person(String name ,int age){
    		this.name = name;
    		this.age = age;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	@Override
    	public int compareTo(Person o) {
    		if(o.age==this.age) {
    			return this.name.compareTo(o.name);
    		}
    		return o.age-this.age;
    	}
    	
    	public String toString() {
    		
    		return "(姓名:"+name+",年龄"+age+")";
    	}
    }

            如何排序,按什么字段来排序,完全取决于compareTo()方法。对其所需排序的字段进行相减就可以实现按照该字段排序了,如果是字符串则需要调用字符串的compareTo()方法返回一个整型

            之所以要重写toString方法,是因为使用输出方法Arrays.toString(Object o)需要识别对象数组中的每一个元素所需要表示的含义。

    另外,当前Person类测试代码与上述整型数组排序代码在同一个main函数中,我不在想要去注释掉整型排序,之前学习了Junit工具,就使用了Junit工具来实现。

        @Test
    	public void testPerson() {
    		
    		Person [] p1 =new Person[] {
    			new Person("Ja",25),
    			new Person("Ai",17),
    			new Person("Aa",17),
    			new Person("Lo",32),
    			new Person("Hi",12),
    			
    		};
    		
    		Arrays.sort(p1);
    		System.out.println(Arrays.toString(p1));
    		
    	}

    输出结果为:

    展开全文
  • 做项目时需要对数组对象进行排序,但是因为需要排序数组对象的属性为字符串数字,例CO001Z01-01,网上找的博客文章根本没讲到点子上,后来翻阅mdn找到了解决办法,遂写出来与大家分享一下。 0x01 代码 还是用...

    0x00 前言

        做项目时需要对数组对象进行排序,但是因为需要排序的数组对象的属性为字符串数字,例CO001Z01-01,网上找的博客文章根本没讲到点子上,后来翻阅mdn找到了解决办法,遂写出来与大家分享一下。

    0x01 代码

        还是用的sort函数排序,但是因为js中字符串比较是使用charAt()进行一个个字符的比较,所以数字无法正常比较大小,比如2是要比12大的,所以这里比较函数中使用了localeCompare来返回值,localeCompare中的第三个参数为一个对象,其中的numeric参数设为true即可按照数字进行排序。具体参数可打开mdn进行查看。

        https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare

    var arr = [
                { code:"C01-10", index:12 },
                { code:"C01-7", index:11 },
                { code:"C01-12", index:15 },
                { code:"C01-24", index:13 }
            ];
    
            function compare(p){ //这是比较函数
                return function(m,n){
                    var a = m[p];
                    var b = n[p];
                    return a.localeCompare(b,'zh-CN',{ numeric: true });
            }}
            arr.sort(compare("code"));

    展开全文
  • , value2 = b[property] if (desc === "desc") { //降序 return value2 - value1 } else { //升序 return value1 - value2 } } } console.log(arr.sort(compare("score"))) compare方法的第一个参数是待排序的字段名...
  • function sortData (requestdata) { var objData = Object.keys(requestdata); objData.sort(function(first, two){ if(first < two) { return -1; } if(first > two) { return 1; } ...
  • package mainimport ("fmt""sort""strconv""strings")func main() {/* 对象排序 */family := []Person{{"Alice", 23},{"Eve", 2},{"Bob", 25},}sort.Sort(ByAge(family))fmt.Println("排序结果为:", family) // [{...
  • js:对象数组排序

    2021-06-19 09:49:49
    在js中,如何对对象数组排序; 直接举例: // 对象数组排序 var objArr=[ {mc:"甘肃",total:3}, {mc:"湖南",total:120}, {mc:"内蒙",total:317}, {mc:"河北",total:320}, ]; function compare(key){ return ...
  • 声明泛型方法,可以给任意对象数组按照元素的自然排序实现从小到大排序,用冒泡排序实现 @Test public void test01() { Integer[] arr1 = {1, 2, 8, 6, 14, 3, 64, 13}; String[] arr2 = {"a", "u", "c", "x", ...
  • 关于对象数组排序-java Arrays类中的sort方法承诺可以对对象数组进行排序,但要求满足下列前提:对象所属的类必须实现了Comparable接口。 Comparable接口的代码如下: public interface Comparable { int compareTo...
  • 如何按对象的字段之一(例如name或count对这个对象数组进行排序?Array([0] => stdClass Object([ID] => 1[name] => Mary Jane[count] => 420)[1] => stdClass Object([ID] => 2[name] => ...
  • 小编典典你有两种方法可以使用Arrays...在对象所属的类中实现Comparable接口,并将数组传递给仅采用一个参数的sort方法。例class Book implements Comparable {public String name, id, author, publisher;public...
  • 3. 关于该代码的好处是Person是提供排序方法的类,从OOP的角度来看更好.只有类Person才能知道如何对其他Person进行排序.人或其他独立功能都不应该. 注意:不使用is_callable(),因为它只验证参数是否可以作为函数调用,...
  • sortBy(_arr) { console.log(_arr) let sortArr = ['土木工程系', '电气工程系', '环境艺术工程系', 'axx', 'bxx']; function getIndex(arr, key) { return arr.indexOf(key) != -1 ? arr.indexOf(key) : ...
  • 首先把实现方法写出来,其实很简单,只需要一句代码即可:复制代码代码如下:productlist.sort(lambda p1, p2:cmp(p1.getPrice(), p2.getPrice()))数组productlist中存储的是自定义类Product,Product有一个方法是...
  • 最近工作中遇到一个问题:有以下一个数组对象(即数组的元素是一个个包含多个字段的对象)进行多字段排序,该数组对象原始数据如下:排序规则如下:1 默认按照对象的createtime字段升序排列。2 创建时间相等的情况下,...
  • 如果你有一个对象数组,你需要排序成一个特定的顺序,诱惑可能是能够得到一个JavaScript库。 然而在你动手之前,记住你可以用Array.sort函数做一些整洁排序。 在本文中,我将向您展示如何在JavaScript中进行对象数组...
  • 然后我必须使用compareTo()方法对其进行排序,首先是它所显示的电影,以及电影.标题.我有以下代码……当我尝试输出排序结果时出现混乱.我把它输出到 – 或者比较字符串的数字.public class ShowTimeTest {public stat....
  • success:(res) => { var item=this.dianpuList for(let i=0 ;i<item.length;i++){ const distance_new = this.getDistance(res.latitude,res.longitude,item[i].ma...
  • 在处理数据的过程中,我们经常会遇到这样的需求:根据数组中每个对象的某个字段值将数组排序展示。如何实现呢?如下: 1、字段的值是个可比较的,例如下面的age字段 ```javascript [ { name: '张三', age: 18, ...
  • 可以使用java.util.Arrays.sort()方法对对象数组进行排序,并使用单个参数,即要排序的数组。演示此的程序如下所示-示例importjava.util.Arrays;publicclassDemo{publicstaticvoidmain(Stringargs[])throwsException...
  • JS数组多条件排序基于Array.sort()方法,首先要了解sort()方法的用法。 sort()方法可以传入一个函数作为参数,然后依据该函数的逻辑,进行数组排序。 eg: var a = [2, 3, 5, 1, 0, 9] a.sort(function(a, b){...
  • 工作需求 : 对 数组中一个对象的值的进行判断 ,若数组对象的值为0 则排序在前边 const arr= this.sortByKey(list, key) /** * array 需要排序数组 * key 对象属性 */ sortByKey(array,key){ return ...
  • PHP按对象字段对对象数组进行排序的方法发布时间:2020-08-...按对象字段对对象数组排序的实现方法;给定一个对象数组,我们按对象和给定字段对数组排序。方法:usort()函数是PHP中内置的函数,用于使用给定的比较器函...
  • arr.sort((prev, next) => prev.排序字段 - next.排序字段);//从大到小降序 arr.sort((prev, next) => next.排序字段 - prev.排序字段);//从小到大升序
  • 关于数组排序马上会想到sort方法,或者reverse方法 但是后者只是简单的逆序而已不能满足大部分需求。前者功能强大便于扩展,该方法有一个自定义排序函数,一般而言针对数字或者同类型不复杂元素很容易进行自定义排序...
  • 问题描述:有一个对象数组,该对象有个属性level,值可能为“重要”、“中等”、“普通”,从后端获取这个对象数组后,需要将其按照它的重要程度展示在前端,所以需要有一个能够用于对象数组排序的方法。 解决方法...
  • vue数组对象排序

    2020-12-29 09:38:03
    前言最近在看vue的教学视频,正好学到的数组对象排序方法,在这跟大家分享一下,如有不足之处,请赐教。普通数组排序先看代码:v-for实例{{number}}new Vue({el:'.app',data:{numbers:[5 ,88, 43, 56, 28, 61, 9],...
  • js对象数组随机排序

    2021-05-07 14:09:28
    for (var i = arr.length-1; i >=0; i--) { var randomIndex = Math.floor(Math.random()*(i+1)); var itemAtIndex = arr[randomIndex]; arr[randomIndex] = arr[i]...console.log(arr)//arr是随机排序后的新数组

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 369,208
精华内容 147,683
关键字:

对象数组的排序