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();
        }
    }
}