可以根据上述算法,写一段java代码吗
时间: 2023-12-23 20:05:26 浏览: 40
当然可以,以下是一段基于上述算法的Java代码:
```java
import java.util.*;
public class RandomizedSet {
private List<Integer> nums;
private Map<Integer, Integer> numToIndex;
public RandomizedSet() {
nums = new ArrayList<>();
numToIndex = new HashMap<>();
}
public boolean insert(int val) {
if (numToIndex.containsKey(val)) return false;
nums.add(val);
numToIndex.put(val, nums.size() - 1);
return true;
}
public boolean remove(int val) {
if (!numToIndex.containsKey(val)) return false;
int index = numToIndex.get(val);
int lastNum = nums.get(nums.size() - 1);
nums.set(index, lastNum);
numToIndex.put(lastNum, index);
nums.remove(nums.size() - 1);
numToIndex.remove(val);
return true;
}
public int getRandom() {
Random rand = new Random();
return nums.get(rand.nextInt(nums.size()));
}
}
```
该类实现了一个可插入、可删除、可随机获取元素的集合。在插入元素时,如果元素已经存在,则返回false;在删除元素时,如果元素不存在,则返回false;在获取随机元素时,使用Java的Random类生成一个随机数,然后返回对应的元素。