Java 如何从另一个方法访问数组的特定点
我在想,我是否可以创建一个返回数组的方法。如何在主方法或其他方法中延迟访问该数组中的特定点 例如:Java 如何从另一个方法访问数组的特定点,java,arrays,methods,Java,Arrays,Methods,我在想,我是否可以创建一个返回数组的方法。如何在主方法或其他方法中延迟访问该数组中的特定点 例如: public static int[] deleteElement(int[]thing, int target){ int[]newThing; newThing=thing; int y=0; for (int i=0; i<thing.length; i++){ if (thing[i]==target){ newThing[y]=thing[i+1];}
public static int[] deleteElement(int[]thing, int target){
int[]newThing;
newThing=thing;
int y=0;
for (int i=0; i<thing.length; i++){
if (thing[i]==target){
newThing[y]=thing[i+1];}
y++;
}
return newThing;
}
public static int test(int[]someArray){
//here how can i access newThing[i]?
}
非常感谢如果您试图将数组传递给另一种方法,请执行以下操作:
int [] myArray = yourClass.deleteElement(thing, target)
yourClass.test(myArray);
如果您试图访问它,那么您可以使用与分配它相同的方式:
elementYouWantToAccess = 2 //or 3, or 6, or whatever element you want
someArray[elementYouWantToAccess];
从技术上讲,你可以说:
someArray[1]//这将访问位置1处的元素
我所做的就是列出一个元素的位置。通过选择位置可以访问阵列
如果不知道所需的确切元素,可以像这样迭代整个数组:
public static int test(int[]someArray){
for(int i=0; ii < someArray.length; i++){
if(someArray[i] == someCondition){
//do something to someArray[i]
}
}
}
在找到所需的元素之前,请将其指定给变量,或者执行任何操作 您需要调用deleteElementint[]thing,int target,它返回一个int[]。您无权访问deleteElementint[]thing,int target之外的newThing,因为它是在方法内部声明的。因此:
int[] list = deleteElement(ra,target); //list = newThing
list[0], list[1], ...
因此,为了从方法外部访问数组中的元素,必须将返回的数组分配给类/方法中的某个对象,然后对该变量进行操作。您真正要问的问题是如何对数组的子数组进行操作。毕竟,您知道如何访问特定元素:a[i]符号 有一些批量方法类可以使用:Array.copy、Array.copyOfRange和System.arrayCopy。但即使使用这些方法,您也做了太多的工作,尤其是当您必须删除数组中的一些项时。您的操作方式可能是^2操作。使用列表代替
public static Integer[] deleteElement(int[] array, int valueToDelete){
List<Integer> list = new ArrayList<>();
for (int n: array) {
if (n != valueToDelete) {
list.add(n);
}
}
return Arrays.toArray(new int[0]);
}
??? 你可以访问它。出什么问题了?你的问题一点也不清楚。另一个方法是同一类的成员吗?是deleteElement的调用者吗?您希望何时访问阵列?访问的索引是否已知?
public static <T> void deleteValue(List<T> list, T value) {
for (Iterator<T>it = list.iterator(); it.hasNext();) {
if (value.equals(it.next()) {
it.delete();
}
}
}