广告
返回顶部
首页 > 资讯 > 数据库 >简单的图片排序
  • 678
分享到

简单的图片排序

简单的图片排序 2014-05-10 08:05:58 678人浏览 绘本
摘要

昨天工作的时候写了图片的排序接口,让后台自定义图片的位置. 话不多说先上修改图片序号的实现原理:          将5号移到2号,  此时区间 [ 2,5 ) 内的排序号都要加1.               将2号移到5号,

简单的图片排序

昨天工作的时候写了图片的排序接口,让后台自定义图片的位置.

话不多说先上修改图片序号的实现原理:

 

 

     将5号移到2号,  此时区间 [ 2,5 ) 内的排序号都要加1.

 

 

 

 

      将2号移到5号,  此时区间 ( 2,5 ] 内的排序号都要减1.

新增图片序号的实现原理:

 

 新增图片序号为3,那么区间 [ 3,∞ ) 内的序号均加1

 

了解原理后上实现代码:

id:图片ID;

imgType:图片类型;

orderId:图片序号.

private void orderIdSort(AppImgBackVo appImg){
Example exampleTwo = new Example(AppImg.class);
Example.Criteria criteriaTwo = exampleTwo.createCriteria();
criteriaTwo.andEqualTo("imgType", appImg.getImgType());
//通过图片类型查找是否存在这个类型的图片
List appImgList = appImgMapper.selectByExample(exampleTwo);
//如果没有这个类型的图片
if(appImgList.size() == 0){
//排序号赋值为1
appImg.setOrderId(1);
}else {
//如果不输入排序号
if(appImg.getOrderId() == null){
//已存在的数量
Integer orderIdMax = appImgMapper.selectMaxOrderId(appImg.getImgType());
//如果是新增,排序号默认为:数量+1
if(appImg.getId() == null){
appImg.setOrderId(orderIdMax+1);
}else {//如果是修改:排序号默认为最大排序号
appImg.setOrderId(orderIdMax);
}
}else {//自定义排序号
//当排序号小于1时,默认为1
if(appImg.getOrderId() < 1){
appImg.setOrderId(1);
}
if(appImg.getId() == null){//添加
//排序号大于原有数量+1时默认为最大数+1
if(appImg.getOrderId() > appImgList.size()+1){
appImg.setOrderId(appImgList.size()+1);
}
                //排序号大于原有数量+1时默认为原有数量+1
                for (AppImg appImgTwo : appImgList){                    区间内排序号+1                    if(appImgTwo.getOrderId() >= appImg.getOrderId()){
appImgTwo.setOrderId(appImgTwo.getOrderId()+1);
appImgMapper.updateByPrimaryKey(appImgTwo);
}
}
}else {//修改
if(appImg.getOrderId() > appImgList.size()){
//排序号大于原有数量+1时默认为原有数量
appImg.setOrderId(appImgList.size());
}
AppImg appImGold = appImgMapper.selectByPrimaryKey(appImg.getId());
//原先的排序号
Integer orderIdOld = appImgOld.getOrderId();
//修改后的排序号
Integer orderIdNew = appImg.getOrderId();
//遍历所有同类型图片
for (AppImg appImgTwo : appImgList){
if(orderIdOld > orderIdNew){ //向前移动
//改动区间内的排序号+1
if(appImgTwo.getOrderId() >= orderIdNew && appImgTwo.getOrderId() < orderIdOld){
appImgTwo.setOrderId(appImgTwo.getOrderId()+1);
appImgMapper.updateByPrimaryKey(appImgTwo);
}
}else {//向后移动
//改动区间内的排序号-1
if(appImgTwo.getOrderId() <= orderIdNew && appImgTwo.getOrderId() > orderIdOld){
appImgTwo.setOrderId(appImgTwo.getOrderId()-1);
appImgMapper.updateByPrimaryKey(appImgTwo);
}
}
}
}
}
}
}
因为项目里在APP端需要展示的每个类型的图片量比较少,所以我写了个简单的排序.
如果排序量成千上万,数量比较多的不建议使用我这个实现原理,因为区间内每个图片的序号都需要修改对数据的压力比较大.
第一次写博客,手有点抖,大佬们随便看看就好
您可能感兴趣的文档:

--结束END--

本文标题: 简单的图片排序

本文链接: https://www.lsjlt.com/news/3693.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 简单的图片排序
    昨天工作的时候写了图片的排序接口,让后台自定义图片的位置. 话不多说先上修改图片序号的实现原理:          将5号移到2号,  此时区间 [ 2,5 ) 内的排序号都要加1.               将2号移到5号,...
    99+
    2014-05-10
    简单的图片排序
  • 图解Java排序算法之3种简单排序
    目录简单选择排序代码实现冒泡排序代码实现直接插入排序代码实现总结排序是数据处理中十分常见且核心的操作,虽说实际项目开发中很小几率会需要我们手动实现,毕竟每种语言的类库中都有n多种关于...
    99+
    2022-11-12
  • 简单的排序算法
    现在的IT行业并不像以前那么好混了,从业人员过多,导致初级程序员过剩,这也间接导致了公司的招聘门槛越来越高,要求程序员掌握的知识也越来越多。算法也是一个争论了很久的话题,程序员到底该不该掌握算法?不同的人有不同的答案,而事实上,很多公司都对...
    99+
    2021-12-20
    java教程 java
  • 【Python】Python简单的图片识
    具体想要实现上面的代码需要安装两个包和一个引擎 在安装之前需要先安装好Python,pip并配置好环境变量 1.第一个包: pytesseract pip install pytesseract 若是出现安装错误的情况,安装...
    99+
    2023-01-31
    简单 图片 Python
  • 图形图像处理之简单图片
    决定Android应用是否被用户接受的一个重要的原因就是用户界面,友好的用户界面就需要使用到图形图像处理技术,包括静态图片、动画和游戏都需要大量的图形图像处理,所谓游戏,其实就是提供更逼真,能模拟某种环境的用户界面,并根据某种规则响应用户的...
    99+
    2023-06-04
  • Java如何实现简单的排序
    这篇文章主要介绍Java如何实现简单的排序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!排序是数据处理中十分常见且核心的操作,虽说实际项目开发中很小几率会需要我们手动实现,毕竟每种语言的类库中都有n多种关于排序算法的...
    99+
    2023-06-25
  • Java排序算法之归并排序简单实现
    算法描述:对于给定的一组记录,首先将每两个相邻的长度为1的子序列进行归并,得到 n/2(向上取整)个长度为2或1的有序子序列,再将其两两归并,反复执行此过程,直到得到一个有序序列。package sorting;public class M...
    99+
    2023-05-30
    java算法 归并排序 ava
  • python选择排序简单实现
    #!/usr/bin/env python3 # -*- coding: UTF-8 -*- # Date:2018-5-27 # Author:AreLIN #选择排序:每次只取一个最大或最小值的索引 import random a ...
    99+
    2023-01-31
    简单 python
  • vue实现图片拖动排序
    本文实例为大家分享了vue实现图片拖动排序的具体代码,供大家参考,具体内容如下 原理:现有一个图片的列表,拖动其中一个图片(触发dragstart),当拖动的图片移动到其他图片的位置...
    99+
    2022-11-12
  • 简单实现node.js图片上传
    本文实例为大家分享了node.js图片上传的具体代码,供大家参考,具体内容如下 1.node-formidable 对文件上传提供帮助的组件 2.app.js var formidable = req...
    99+
    2022-06-04
    图片上传 简单 node
  • JavaScript实现简单图片切换
    本文实例为大家分享了JavaScript实现简单图片切换的具体代码,供大家参考,具体内容如下 下边给出几种方法进行图片切换: 方法一 (小白专用款!简单易懂) 下边附上代码: &...
    99+
    2022-11-12
  • js实现简单图片切换
    本文实例为大家分享了JavaScript实现图片间切换的具体代码,供大家参考,具体内容如下 代码的主要思路: 1、先给“下一张”和“上一张&rdq...
    99+
    2022-11-13
  • 怎么用css实现类似图片画廊的图片排序
    这篇文章主要介绍怎么用css实现类似图片画廊的图片排序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   <!DOCTYPEhtml>   <html> ...
    99+
    2022-10-19
  • Android简单实现菜单拖拽排序的功能
    目录1、效果2、简介3、功能拆解4、功能实现4.1、实现接口4.1.1、getMovementFlags4.1.2、onMove4.1.3、onSwiped4.2、绑定Recycle...
    99+
    2022-11-13
  • android中知道图片name时获取图片的简单方法
    1. 图片放在sdcard中, 代码如下:  Bitmap imageBitmap = BitmapFactory.decodeFile(path)  (path 是...
    99+
    2022-06-06
    方法 Android
  • Python实现.gif图片拆分为.png图片的简单示例
    Python实现.gif图片拆分为.png图片 实现效果展示: 未转化前的gif图片 经转化后: ----------------------------------------...
    99+
    2023-01-28
    怎么把gif图变成png python gif转换jpg python生成png图片
  • Java基础之简单的图片处理
    目录一、前言二、依赖三、封装数据类四、常量类五、图像处理类六、效果图一、前言 先使用一个模板图片,在图片上添加图片或者文字都可以。 二、依赖 <dependency>...
    99+
    2022-11-12
  • python 对图片进行简单的处理
    目录安装Pillow包图片划线图片写字图片加图片水印图片模糊图片截取总结安装Pillow包 pip install Pillow 图片划线 from PIL import Image, ImageDraw...
    99+
    2022-06-02
    python 图片处理
  • 微信小程序图片上传组件实现图片拖拽排序
    目录引言首先来看效果组件设计使用方式总结引言 图片上传组件是一个组件库目前来看必不可少的功能了。笔者近日给自己开源的toy工具库也添加了这一功能。相比原生和大部分组件库来说,它不仅支...
    99+
    2022-11-13
  • python排序算法的简单实现方法
    1 冒泡排序  1.1 算法步骤: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作