#jitoa#【OpenHarmony 北向应用开发】探索Arkts中结构体的排序 原创

X叶域Q
发布于 2023-12-20 14:33
3175浏览
0收藏

此博客由金陵科技学院-开放原子开源社 李俊杰编写

在C语言中,结构体是一种强大的数据类型,允许我们组织和存储不同数据类型的信息。在本文中,我们将学习如何使用Arkts实现,接口的定义与排序

1. 定义学生接口

首先,我们定义了一个名为student的接口,表示学生的基本信息:

interface student{
  id: number,
  name: string,
  score: number
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

2. 排序函数的编写

为了实现数组的排序,我们编写了一个比较函数compare_students,该函数首先按照分数升序排序,如果分数相同,则按照ID升序排序。

compare_students(a: student, b: student){
    if(a.score != b.score){
      return a.score - b.score;
    }else{
      return a.id - b.id;
    }
  }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

3. 实验过程

在实验中,我们创建了一个包含多个学生对象的数组,并使用 Arkts 语言提供的排序方法对数组进行排序。

interface student{
  id: number,
  name: string,
  score: number
}
@Entry
@Component
struct Index {
  @State stuArray: Array<student> = [
    {id: 1, name: "张三", score: 80},
    {id: 5, name: "李四", score: 90},
    {id: 2, name: "王五", score: 90},
    {id: 3, name: "赵六", score: 30},
    {id: 4, name: "吴七", score: 30},
  ]
  compare_students(a: student, b: student){
    if(a.score != b.score){
      return a.score - b.score;
    }else{
      return a.id - b.id;
    }
  }
  build() {

      Column(){
        ForEach(this.stuArray, (item: student, i)=>{
          Row(){
            Text(`${item.id}`)
              .fontSize(40)
              .fontColor(i < 3 ? Color.Red : Color.Black)
              .margin(20)
            Text(item.name)
              .fontSize(40)
            Text(`${item.score}`)
              .fontSize(40)
              .fontColor(i < 3 ? Color.Red : Color.Black)
              .margin(20)
          }
        })
        Button("按score递增排序, score相同按id递增排序")
          .onClick(() =>{
            this.stuArray.sort(this.compare_students);
        })
      }
      .width('100%')
      .height('100%')
    .justifyContent(FlexAlign.Center)
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.

4. 结果展示

排序前:

#jitoa#【OpenHarmony 北向应用开发】探索Arkts中结构体的排序-鸿蒙开发者社区

排序后:

#jitoa#【OpenHarmony 北向应用开发】探索Arkts中结构体的排序-鸿蒙开发者社区

5. 结论

通过这个实验,我们学习了如何在Arkts语言中使用接口和排序方法对数据进行排序。这对于处理需要根据不同字段排序的复杂数据结构非常有用。希望这篇文章对你在Arkts语言中的学习和开发有所帮助!

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2023-12-20 14:41:48修改
3
收藏
回复
举报
3
1
1条回复
按时间正序
/
按时间倒序
在敲键盘的小鱼干很饥饿
在敲键盘的小鱼干很饥饿

666666

回复
2024-12-12 13:45:59


回复
    相关推荐