2 hxz demo hxz_demo 于 2017.08.28 11:24 提问

如何处理排序(默认往后排序。用户设置排序,如果该排序已存在,那个已存在的排序与其后续排序往后挪一位) 50C

数据库已有的数据是:1,2,3,4,5 排序, 新增一个时 ,没给排序的话,自动默认为6,给1 的话,那么原有的12345 向后移一位,变为23456,新添的那个是1

4个回答

zy841958835
zy841958835   Ds   Rxr 2017.08.28 13:40

public void sort(int j){
List arr =new ArrayList();
arr.addAll(Arrays.asList(1,2,3,4,5));
if(j==-1){//没给排序
arr.set(arr.size(), arr.get(arr.size()-1)+1);
}else if(arr.contains(j)){
int index = 0;
for(int i=0;i if(arr.get(i)==j){
index = i;
break;
}
}
for(int m=arr.size();m>index;m--){
arr.set(m,arr.get(m-1)+1);
}
arr.set(index, j);
}else if(arr.get(0)>j){
for(int m=arr.size();m>0;m--){
arr.set(m,arr.get(m-1)+1);
}
arr.set(0, j);
}else{
arr.set(arr.size(), j);
}
}

zy841958835
zy841958835 手快 写错了 把add化成set就好了
3 个月之前 回复
zy841958835
zy841958835   Ds   Rxr 2017.08.28 13:56

public static void sort(int j){
List arr =new ArrayList();
// arr.addAll(Arrays.asList(1,2,3,4,5));
arr.add(1);
arr.add(2);
arr.add(3);
arr.add(4);
arr.add(5);
if(j==-1){//没给排序
arr.add(arr.get(arr.size()-1)+1);
}else if(arr.contains(j)){
int index = 0;
for(int i=0;i if(arr.get(i)==j){
index = i;
break;
}
}
arr.add(arr.size(),arr.get(arr.size()-1)+1);
for(int m=arr.size()-1;m>index;m--){
arr.set(m,arr.get(m-1)+1);
}
arr.set(index, j);
}else if(arr.get(0)>j){
arr.add(arr.size(),arr.get(arr.size()-1)+1);
for(int m=arr.size()-1;m>0;m--){
arr.set(m,arr.get(m-1)+1);
}
arr.set(0, j);
}else{
arr.add(arr.size(), j);
}
for(Integer temp : arr)
System.out.println(temp);
}

zhumumuz
zhumumuz   2017.08.28 12:52

用递归去实现,先查找排序为一的,看有没有找到!有返回值,就用递归,把当前大于这个排序的递归加1!

hxz_demo
hxz_demo 请问具体代码怎么实现
3 个月之前 回复
wardencb
wardencb   2017.08.30 09:47

你是要在数据库里面去实现还是Java代码里面实现这个?

Csdn user default icon
上传中...
上传图片
插入图片