Java中如何同时访问数组的多个非连续指定索引?
Java中能否同时访问数组的多个非连续索引?
首先明确:Java原生语法不支持直接通过myArray[1,3]或传入索引数组myArray[indexes]这种方式访问非连续索引。
原生语法下的常规写法
如果要获取索引1和3的值,你提到的这种写法是最直接的方式:
int[] myArray = {1, 3, 5, 7, 9}; System.out.print(myArray[1] + myArray[3]);
实现类似需求的替代方案
如果需要频繁处理这类非连续索引的访问,可以自己封装工具方法来简化操作,比如:
import java.util.Arrays; import java.util.stream.IntStream; public class ArrayUtils { public static int[] getElements(int[] array, int... indexes) { return IntStream.of(indexes) .map(i -> array[i]) .toArray(); } }
使用时就可以这样调用:
int[] myArray = {1, 3, 5, 7, 9}; int[] selected = ArrayUtils.getElements(myArray, 1, 3); // 输出选中的元素 System.out.print(Arrays.toString(selected)); // 输出 [3, 7]
或者如果只是要直接输出这些元素,也可以写个工具方法直接处理:
public static void printElements(int[] array, int... indexes) { IntStream.of(indexes) .map(i -> array[i]) .forEach(System.out::print); }
调用:
printElements(myArray, 1, 3); // 输出 37
补充说明
- Java数组的下标语法只支持单个整数索引,这是语言层面的规定,没有语法糖支持多索引直接访问。
- 若使用第三方工具库(比如Apache Commons Lang),也有现成工具类可实现类似功能,但简单需求下自行封装轻量方法更便捷。
内容的提问来源于stack exchange,提问作者Kevin.J
相关产品推荐
相关产品推荐

