标准 大 超大巨大
温馨提示:该条问答的文字/图片中可能存在风险信息,请注意识别,谨防上当受骗!
ja来自va数据结构

用户头像匿名网友

2015-10-08

用java语言,生成一个1~n的随机数序列,当增加或删除一个元素时,使序列元素值动态更新


4个回答

满意答案

sunny秋水人家
LV12
2015-10-08

【代码截图】



【运职全约增行截图】


【源代码】

package com.haha;

import ja很河比草va.util.ArrayLi良鱼述了st;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Test {

public static void main(String args[]) {
 Scanner scanner 360问答= new Scanner(***.in);
 System.o章关略要也电呼叫银矛息ut.print("请输入n值 :");
 in早举笑手新效斗t n = scanner.n船诗完育停extInt();
 List<Integer> lists = new ArrayList<Integer>();
 for 镇地再左句依汽绝(int i = 1; i <= 马术n; i++) {
  lists.add(i);
 }
 C历死设清动前食笔妈ollections.shuffle(lists);
 S失听医径移检刑北ystem.out.println("生成的随机数序列为:" + lists.toString());
 System.out.println("----------------------------余毛叶深材令混风灯展重--------------------");
 while (true) {
  System.out.println("请选择:1. 增加数字    2.删除数字 ");
  System.out.print("您的选择是:");
  int input = scanner.nextInt();
  switch (input) {
  case 1:
   System.out预论块庆紧级委吧行.print("请输入增加的数:");
   int add=scanner.ne终象杂续由半根xtInt();
   addNumber(lists, add);
   break;
  case 2:
   System.out.print("请输入删除的数:");
   int del=scanner.next担销转但月段测电Int();
   delNumber(lists, del);
   break;
  default:
   break;
  }
 }
}

public static void addNumber友她卫营岁足研(List<Integer> lists, int add) {
 lists.add(add);
 Collections.shuffle(lists);
 System.out.println("增加后的随机序列为:" + lists.toString());
 System.out.println("-----------叶攻-------------------------------------");
}

public static void delNumber(List<Integer> lists, int del) {
 int k=0;
 for (int i = 0; i < lists.size(); i++) {
  if (lists.get(i) == del) {
   k++;
   lists.remove(i);
  }
 }
 if (k==0) {
  System.out.println("您所删除的 "+del+" 不存在,请重新选择!");
  System.out.println("------------------------------------------------");
  return;
 }
 Collections.shuffle(lists);
 System.out.println("删除后的随机序列为:" + lists.toString());
 System.out.println("------------------------------------------------");
}
}


11
匿名网友
2015-10-08

使用集合就行了

展开完整答案
0
匿名网友
2015-10-09

之前做过类似项目,维护一组序列的顺序号。当时的做法是,增加没问题,删除或调整顺序的时候,动态修改影响的序列号。

比如删除一个id,那么删除后,还要做一个操作,update set serial=serial-1 where serial>[id]

 

@sunny秋水人家 超有耐心,你代码都是手写的?求Q

展开完整答案
0
唯美夏椛
LV24
2015-10-09

直接用集合add和remove多简单.

展开完整答案
0

更多回答(3

您可能感兴趣的内容

相关问题

查看更多相关问题