java数组中获取三个随机索引不重复
时间: 2024-01-15 22:05:10 浏览: 45
可以采用以下方法获取三个随机索引不重复:
1. 首先创建一个大小为数组长度的布尔类型数组,用于标记该元素是否已经被选中。
2. 创建一个空的整型列表,用于存放选中的索引。
3. 使用循环,生成随机数并将其转换为整型索引值。如果该索引值没有被选中,则将其添加到列表中,并将标记数组对应位置设为 true;否则继续生成随机数,直到找到一个未选中的索引。
4. 当列表中的元素数量达到三个时,退出循环。
以下是代码示例:
```java
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
boolean[] selected = new boolean[arr.length];
List<Integer> indexes = new ArrayList<>();
Random random = new Random();
while (indexes.size() < 3) {
int index = random.nextInt(arr.length);
if (!selected[index]) {
indexes.add(index);
selected[index] = true;
}
}
for (int i : indexes) {
System.out.println(arr[i]);
}
```
注意:以上代码假设数组中的元素不重复,如果有重复元素则需要额外的处理。
相关问题
Java数组中抽取三个数随机组合
可以使用Java的Random类和数组来实现随机抽取三个数的组合。具体步骤如下:
1. 创建一个包含所有可能数的数组arr。
2. 使用Random类生成一个0到arr.length-1之间的随机数,取得arr中对应的数,将其从arr中删除。
3. 重复步骤2,直到抽取3个数,将它们存储在一个新的数组中。
下面是示例代码:
```java
import java.util.Arrays;
import java.util.Random;
public class RandomCombination {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] result = new int[3];
Random rand = new Random();
for (int i = 0; i < 3; i++) {
int index = rand.nextInt(arr.length);
result[i] = arr[index];
arr = removeElement(arr, index);
}
System.out.println(Arrays.toString(result));
}
private static int[] removeElement(int[] arr, int index) {
int[] newArr = new int[arr.length - 1];
for (int i = 0, j = 0; i < arr.length; i++) {
if (i != index) {
newArr[j] = arr[i];
j++;
}
}
return newArr;
}
}
```
在这个例子中,我们使用了removeElement方法来删除已经被抽取的数。这个方法在数组中删除给定索引的元素,然后返回一个新数组。最后,我们输出了随机组合的结果。
Java怎么在一维数组中获取 某个元素的索引
你可以使用 for 循环遍历一维数组,找到目标元素的索引。具体代码如下:
```java
public static int findIndex(int[] arr, int target) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) {
return i;
}
}
return -1; // 如果没找到,返回 -1
}
```
其中,`arr` 是数组名,`target` 是要查找的元素。如果找到了,返回元素的索引;如果没找到,返回 -1。