树状结构数据按照顺序排序

简介: 树状结构数据按照顺序排序

这里写两种实现,一种java,一种js

首先是js的

const list = [
  {titleNum: '1.1.1'}, 
  {titleNum: '1'},
  {titleNum: '10'},  
  {titleNum: '2'}
];
list.sort((a, b) => {
  const aLevels = a.titleNum.split('.').map(i => parseInt(i));
  const bLevels = b.titleNum.split('.').map(i => parseInt(i));
  const minLength = Math.min(aLevels.length, bLevels.length);
  for (let i = 0; i < minLength; i++) {
    if (aLevels[i] !== bLevels[i]) {
      return aLevels[i] - bLevels[i];
    } 
  }
  return aLevels.length - bLevels.length; 
});
console.log(list);

其次是java的:

Collections.sort(list,new Comparator<Chatr>(){
  @Override
  public int compare(Chatr o1,Chatr o2){
    String[] levels1=o1.getTitleNum().split("\\.");
    String[] levels2=o2.getTitleNum().split("\\.");
    int idx=0;
    while(idx<levels1.length && idx<levels2.length){
      int level1=Integer.parseInt(levels1[idx]);
      int level2=Integer.parseInt(levels2[idx]);
      if(level1 != level2){
        return Integer.compare(level1,level2);
      }
      idx ++;
    }
    return Integer.compare(levels1.length,levels2.length);
  }
});

以上。

目录
相关文章
|
20天前
|
算法 测试技术 C#
【离散化】【 树状树状 】100246 将元素分配到两个数组中
【离散化】【 树状树状 】100246 将元素分配到两个数组中
|
8月前
|
存储 数据库 索引
为什么索引底层用b+树不用b树
为什么索引底层用b+树不用b树
57 0
|
8月前
|
存储 关系型数据库 MySQL
为什么MySQL索引结构采用B+树?
一位6年经验的小伙伴去字节面试的时候被问到这样一个问题,为什么MySQL索引结构要采用B+树?这位小伙伴从来就没有思考过这个问题。只因为现在都这么卷,后面还特意查了很多资料,他也希望听听我的见解。
102 0
|
10月前
数据结构(7)树形结构——红黑树(概念、插入过程、删除过程)
7.1.概述 平衡二叉树是要求任意结点的左右子树高度差不超过1,因此在AVL中用旋转来保证树的绝对平衡,但是这些旋转操作步骤繁多很耗时间,所以在面对经常会有数据插入的场景时,AVL不是一个性能优秀的选择。这时候反过来思考一个问题,旋转是为了保证树的绝对平衡,但是树的绝对平衡是必须的吗?显然不是,树的高度差只要不是太高从而退化成斜二叉树其实就能接受。
58 0
|
存储
树型结构——二叉数
树型结构——二叉数
92 0
树型结构——二叉数
数据结构83-集合常见操作之子集代码
数据结构83-集合常见操作之子集代码
37 0
数据结构83-集合常见操作之子集代码
数据结构84-集合常见操作之子集代码
数据结构84-集合常见操作之子集代码
38 0
|
机器学习/深度学习 存储 搜索推荐
【数据结构】树的概念与结构 | 树的几种常见表示方法
本章将正式开启数据结构中 “树” 部分的讲解,本章将介绍树的概念和结构,以及树的表示方法。
162 0
【数据结构】树的概念与结构 | 树的几种常见表示方法
|
存储 算法 Java
数据结构之查找和排序
1.2 查找树 1.2.1 二叉查找/搜索/排序树 BST (1)或者是一棵空树 (2)或者是具有下列性质的二叉树 ①若它的左子树不为空,则左子树上所有结点的值均小于它的根结点的值 ②若它的右子树上所有结点的值均大于它的根结点的值 ③它的左、右子树也分别为二叉排序树
数据结构之查找和排序
|
算法 索引
【数据结构】动态查找表— B-树和B+树
【数据结构】动态查找表— B-树和B+树
153 0
【数据结构】动态查找表— B-树和B+树

热门文章

最新文章