我的编程空间,编程开发者的网络收藏夹
学习永远不晚

简单的图片排序

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

简单的图片排序

简单的图片排序

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

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

 

 

     将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端需要展示的每个类型的图片量比较少,所以我写了个简单的排序.
如果排序量成千上万,数量比较多的不建议使用我这个实现原理,因为区间内每个图片的序号都需要修改对数据的压力比较大.
第一次写博客,手有点抖,大佬们随便看看就好

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

简单的图片排序

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

下载Word文档

猜你喜欢

简单的图片排序

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

简单的排序算法

现在的IT行业并不像以前那么好混了,从业人员过多,导致初级程序员过剩,这也间接导致了公司的招聘门槛越来越高,要求程序员掌握的知识也越来越多。算法也是一个争论了很久的话题,程序员到底该不该掌握算法?不同的人有不同的答案,而事实上,很多公司都对算法有一定的要求,有
简单的排序算法
2021-12-20

【Python】Python简单的图片识

具体想要实现上面的代码需要安装两个包和一个引擎 在安装之前需要先安装好Python,pip并配置好环境变量1.第一个包: pytesseractpip install pytesseract若是出现安装错误的情况,安装不了的时候,可以将命令
2023-01-31

Java如何实现简单的排序

这篇文章主要介绍Java如何实现简单的排序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!排序是数据处理中十分常见且核心的操作,虽说实际项目开发中很小几率会需要我们手动实现,毕竟每种语言的类库中都有n多种关于排序算法的
2023-06-25

图形图像处理之简单图片

决定Android应用是否被用户接受的一个重要的原因就是用户界面,友好的用户界面就需要使用到图形图像处理技术,包括静态图片、动画和游戏都需要大量的图形图像处理,所谓游戏,其实就是提供更逼真,能模拟某种环境的用户界面,并根据某种规则响应用户的
2023-06-04

Java排序算法之归并排序简单实现

算法描述:对于给定的一组记录,首先将每两个相邻的长度为1的子序列进行归并,得到 n/2(向上取整)个长度为2或1的有序子序列,再将其两两归并,反复执行此过程,直到得到一个有序序列。package sorting;/** * 归并排序 * 平
2023-05-30

python选择排序简单实现

#!/usr/bin/env python3# -*- coding: UTF-8 -*-# Date:2018-5-27# Author:AreLIN#选择排序:每次只取一个最大或最小值的索引import randoma = []coun
2023-01-31

简单实现node.js图片上传

本文实例为大家分享了node.js图片上传的具体代码,供大家参考,具体内容如下 1.node-formidable 对文件上传提供帮助的组件2.app.jsvar formidable = require('formidable'); va
2022-06-04

Python实现.gif图片拆分为.png图片的简单示例

有时候需要把GIF图片分解成一张一张的静态图,jpg或者png格式,下面这篇文章主要给大家介绍了关于Python实现.gif图片拆分为.png图片的相关资料,需要的朋友可以参考下
2023-01-28

python 对图片进行简单的处理

目录安装Pillow包图片划线图片写字图片加图片水印图片模糊图片截取总结安装Pillow包pip install Pillow图片划线from PIL import Image, ImageDraw im = Image.open("blu
2022-06-02

android中知道图片name时获取图片的简单方法

1. 图片放在sdcard中, 代码如下:  Bitmap imageBitmap = BitmapFactory.decodeFile(path) (path 是图片的路径,跟目录是/sdcard)  2. 图片在项目的res文件夹下面
2022-06-06

python最简单的冒泡排序怎么写

冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,比较每对相邻的元素,并按照顺序交换它们,直到整个列表排序完成。下面是Python中最简单的冒泡排序的实现:```pythondef bubbleSort(arr):n = len(ar
2023-08-08

编程热搜

目录