go数组对象排序

作者: 五岁小孩 | 来源:发表于2021-01-11 22:25 被阅读0次

go数组对象排序

对象数组排序

service

package service

import (
    "fmt"
    "sort"
)

type Person struct {
    Name string `json:"name"`
    Sex  string `json:"sex"`
    Age  int    `json:"age"`
}
type PersonSort []Person

//PersonSort 实现sort SDK 中的Interface接口

func (s PersonSort) Len() int { 
    //返回传入数据的总数
    return len(s) 
}
func (s PersonSort) Swap(i, j int) {
    //两个对象满足Less()则位置对换
    //表示执行交换数组中下标为i的数据和下标为j的数据
    s[i], s[j] = s[j], s[i]
}
func (s PersonSort) Less(i, j int) bool {
    //按字段比较大小,此处是降序排序
    //返回数组中下标为i的数据是否小于下标为j的数据
    return s[i].Age > s[j].Age
}

func SortSlice() {
    var mD []Person

    m16 := Person{
        Name: "xj16",
        Sex:  "男16",
        Age:  16,
    }
    mD = append(mD, m16)
    m55 := Person{
        Name: "xj55",
        Sex:  "男55",
        Age:  55,
    }
    mD = append(mD, m55)
    m18 := Person{
        Name: "xj18",
        Sex:  "男18",
        Age:  18,
    }
    mD = append(mD, m18)
    m25 := Person{
        Name: "xj25",
        Sex:  "男25",
        Age:  25,
    }
    m15 := Person{Name: "xj15",
        Sex: "男15",
        Age: 15,
    }
    mD = append(mD, m15)
    mD = append(mD, m25)
    fmt.Printf("排序前:%+v\n", mD)
    sort.Sort(PersonSort(mD))
    fmt.Printf("排序后:%+v\n", mD)
}

排序前:[{Name:xj16 Sex:男16 Age:16} {Name:xj55 Sex:男55 Age:55} {Name:xj18 Sex:男18 Age:18} {Name:xj15 Sex:男15 Age:15} {Name:xj25 Sex:男25 Age:25}]

排序后:[{Name:xj55 Sex:男55 Age:55} {Name:xj25 Sex:男25 Age:25} {Name:xj18 Sex:男18 Age:18} {Name:xj16 Sex:男16 Age:16} {Name:xj15 Sex:男15 Age:15}]

相关文章

  • go数组对象排序

    go数组对象排序 对象数组排序 service 排序前:[{Name:xj16 Sex:男16 Age:16} {...

  • java 数组和list排序

    数组排序 其中有数组排序和数组对象排序 数组一些数字排序则直接用Arrays.sort()加数组就可以。数组对象则...

  • js中对象数组按对象属性排序

    数组对象要按属性大小排序怎么办? 数组对象属性排序 我们要如何实现数组中的对象按data大小排序? sort方法 ...

  • JS数组操作

    对象数组排序 标签(空格分隔): JS 一个对象数组 根据id进行正序排序 数组分割

  • 数组对象排序

    数组对象排序:

  • 2018-02-24

    1. 对数组对象属性排序 思路很简单,利用sort方法对对象数组按照对象属性进行排序,不过不要卡壳了~ 2. 数组...

  • 排序问题

    数组排序 数组排序最简单了,直接Arrays.sort(a); a是待排序的数组 根据对象中的成员变量来排序 这个...

  • 数组的常见知识

    数组创建 Array对象属性 Array对象方法 数字排序 数组去重

  • iOS开发·必会的算法操作:字符串数组排序+模型对象数组排序

    iOS开发·必会的算法操作:字符串数组排序+模型对象数组排序

  • sort()的二次应用

    对于sort()排序的二次应用 1.使用场景 只是为了方便数组,数组对象的排序。在工作中数组对象排序的时候由于so...

网友评论

    本文标题:go数组对象排序

    本文链接:https://www.haomeiwen.com/subject/pjvonktx.html