web-gelistirme-sc.com

Arraylist döndüren Java döndürme yöntemi?

Böyle bir yöntemle bir sınıf var:

public ArrayList<Integer> myNumbers()    {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(11);
    numbers.add(3);
    return(numbers);
}

bu yöntemi başka bir sınıf içinde nasıl çağırabilirim?

16
Nikhil

1. Bu yöntemi çağırmak istediğiniz sınıf aynı paketteyse, bu sınıfın bir örneğini oluşturun ve yöntemi çağırın.

2. Kullan Composition

3. Generic ArrayList vs. gibi bir ArrayList<Integer> 'a sahip olmak daha iyi olurdu ...

Örneğin:

public class Test{

public ArrayList<Integer> myNumbers()    {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(11);
    numbers.add(3);
    return(numbers);
 }
}


public class T{


public static void main(String[] args){

   Test t = new Test();
   ArrayList<Integer> arr = t.myNumbers();        // You can catch the returned integer arraylist into an arraylist.
 }


}
17

Böyle bir şeyin olduğunu varsayarsak:

public class MyFirstClass {
   ...
   public ArrayList<Integer> myNumbers()    {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(11);
    numbers.add(3);
    return(numbers);
   }
   ...
}

Bu yöntemi şöyle adlandırabilirsiniz:

public class MySecondClass {
    ...
    MyFirstClass m1 = new MyFirstClass();
    List<Integer> myList = m1.myNumbers();
    ...
}

Aramaya çalıştığınız yöntem statik olmadığından, bu yöntemi sağlayan sınıfın bir örneğini oluşturmanız gerekir. Örneği oluşturduktan sonra, yönteme erişebileceksiniz.

Not, yukarıdaki kod örneğinde, bu satırı kullandım: List<Integer> myList = m1.myNumbers();. Bu, aşağıdaki şekilde değiştirilebilir: ArrayList<Integer> myList = m1.myNumbers();. Ancak, genellikle bir arayüze ve somut bir uygulamaya programlanmamanız önerilir, bu nedenle kullandığınız yöntem için önerim şöyle bir şey yapmak olacaktır:

public List<Integer> myNumbers()    {
    List<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(11);
    numbers.add(3);
    return(numbers);
   }

Bu, bu listenin içeriğini List arabirimini uygulayana atamanıza izin verir.

9
npinti

İçinde bulunduğu sınıfı başlatmanız veya yöntemi statik hale getirmeniz gerekir.

Öyleyse Foo sınıfında bulunuyorsa:

Foo x = new Foo();
List<Integer> stuff = x.myNumbers();

veya alternatif olarak steno:

List<Integer> stuff = new Foo().myNumbers();

veya şöyle statik yaparsanız: 

public static List<Integer> myNumbers()    {
    List<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(11);
    numbers.add(3);
    return(numbers);
}

öyle diyebilirsin: 

List<Integer> stuff = Foo.myNumbers();
5
List<Integer> numbers = new TheClassName().myNumbers();
2
user1464472

Eğer sınıf Foo ise, bu metodu dahil edin.

class Foo{
  public ArrayList<Integer> myNumbers()    {
     //code code code
  }
}

sonra

new Foo().myNumbers();
1
Jigar Joshi
MyClass obj = new MyClass();
ArrayList<Integer> numbers = obj.myNumbers();
1
Nandkumar Tekale

Metodunuz çağrılabilir ve arraylist bu şekilde saklanabilir

YourClassName class = new YourClassName();
Arraylist<Integer> numbers = class.numbers(); 

Bu aynı zamanda, arrailin bu sınıfta daha fazla manipüle edilmesini sağlar.

0
kyle

Başka bir sınıfta kullanabilirsiniz

public ArrayList<Integer> myNumbers = new Foo().myNumbers();

veya 

Foo myClass = new Foo();
 public ArrayList<Integer> myNumbers = myclass.myNumbers();
0