你可以使用一个数组返回所有的元素的索引- public static void main(String[] args) {
- int arr[] = { 28, 32, 2, 321, 12, 3, 123, 2, 123, 23, 12 };
- int search[] = getKey(arr,2);
- for (int i = 0; i < search.length; i++) {
- //如果不为-1则为索引值输出
- if(search[i]!=-1){
- System.out.print(search[i]+" ");
- }
- }
- }
- public static int[] getKey(int[] arr, int key) {
- //记录索引值的位置
- int temp[] = new int [arr.length];
- //初始化所有的索引值为-1
- for (int i = 0; i < temp.length; i++) {
- temp[i] = -1;
- }
- //临时变量记录数组目前的位置
- int flag = 0;
- for (int x = 0; x < arr.length; x++) {
- if (arr[x] == key) {
- //如果找到索引,存入数组
- temp[flag++] = x;
- }
- }
- return temp;
- }
复制代码
如果学习到集合的话,可以返回一个List集合
- public static void main(String[] args) {
- int arr[] = { 28, 32, 2, 321, 12, 3, 123, 2, 123, 23, 12 };
- List<Integer> list = getKey(arr, 2);
- for (Integer integer : list) {
- //所有的索引值
- System.out.print(integer+" ");
- }
- }
- public static List<Integer> getKey(int[] arr, int key) {
- //记录索引值的位置
- List<Integer> list = new ArrayList<Integer>();
- for (int x = 0; x < arr.length; x++) {
- if (arr[x] == key) {
- //如果找到索引,存入数组
- list.add(x);
- }
- }
- return list;
- }
复制代码
|