java实现有效管理一个1~n的随机数序列,要求生成初始序列,保证序列中的元素值不重复,当增加或删除一个元素的时候,使序列元素值动态更新。例如,一个MP3播放器使用速记方式播放10首歌曲,曲目播放次序就是由1~10组成的一个随机数序列,当增加或删除一首歌的时候,要及时更新序列中元素值,不重复播放
时间: 2023-06-11 15:07:17 浏览: 183
可以使用Java中的ArrayList来实现这个功能。
首先,在生成初始序列时,可以使用Java中的Collections.shuffle()方法将1~n的数字随机打乱,然后将其加入到ArrayList中,从而保证序列中的元素值不重复。
然后,当需要增加或删除一个元素时,可以使用ArrayList的add()和remove()方法来操作序列,同时需要检查加入的元素是否已经存在于序列中,或者删除的元素是否存在于序列中。
以下是一个示例代码:
```java
import java.util.ArrayList;
import java.util.Collections;
public class RandomSequence {
private ArrayList<Integer> sequence;
public RandomSequence(int n) {
sequence = new ArrayList<Integer>();
for (int i = 1; i <= n; i++) {
sequence.add(i);
}
Collections.shuffle(sequence);
}
public void add(int num) {
if (!sequence.contains(num)) {
sequence.add(num);
}
}
public void remove(int num) {
sequence.remove(Integer.valueOf(num));
}
public void printSequence() {
for (int num : sequence) {
System.out.print(num + " ");
}
System.out.println();
}
public static void main(String[] args) {
RandomSequence rs = new RandomSequence(10);
rs.printSequence(); // 输出随机序列
rs.add(11);
rs.printSequence(); // 输出加入一个元素后的序列
rs.remove(5);
rs.printSequence(); // 输出删除一个元素后的序列
}
}
```
输出结果:
```
9 3 2 7 5 10 1 8 4 6
9 3 2 7 5 10 1 8 4 6 11
9 3 2 7 10 1 8 4 6 11
```
阅读全文