Java - How to access an ArrayList of another class?

后端 未结 5 492
感动是毒
感动是毒 2020-12-23 18:11

Hello I\'m a beginner in Java and this is my question: I have this first class with the following variables:

import java.util.ArrayList;

public class number         


        
相关标签:
5条回答
  • 2020-12-23 18:36
    import java.util.ArrayList;
    public class numbers {
       private int number1 = 50;
       private int number2 = 100;
       private List<Integer> list;
    
       public numbers() {
           list = new ArrayList<Integer>();
           list.add(number1);
           list.add(number2);
       }
    
       public List<Integer> getList() {
           return list;
       }
    }
    

    And the test class:

    import java.util.ArrayList;
    public class test {
       private numbers number;
    
       //example
       public test() {
         number = new numbers();
         List<Integer> list = number.getList();
         //hurray !
       }
    }
    

    0 讨论(0)
  • 2020-12-23 18:40

    You can do this by providing in class numbers:

    • A method that returns the ArrayList object itself.
    • A method that returns a non-modifiable wrapper of the ArrayList. This prevents modification to the list without the knowledge of the class numbers.
    • Methods that provide the set of operations you want to support from class numbers. This allows class numbers to control the set of operations supported.

    By the way, there is a strong convention that Java class names are uppercased.

    Case 1 (simple getter):

    public class Numbers {
          private List<Integer> list;
          public List<Integer> getList() { return list; }
          ...
    }
    

    Case 2 (non-modifiable wrapper):

    public class Numbers {
          private List<Integer> list;
          public List<Integer> getList() { return Collections.unmodifiableList( list ); }
          ...
    }
    

    Case 3 (specific methods):

    public class Numbers {
          private List<Integer> list;
          public void addToList( int i ) { list.add(i); }
          public int getValueAtIndex( int index ) { return list.get( index ); }
          ...
    }
    
    0 讨论(0)
  • 2020-12-23 18:43

    You can do the following:

      public class Numbers {
        private int number1 = 50;
        private int number2 = 100;
        private List<Integer> list;
    
        public Numbers() {
          list = new ArrayList<Integer>();
          list.add(number1);
          list.add(number2);
        }
    
        int getNumber(int pos)
        {
          return list.get(pos);
        }
      }
    
      public class Test {
        private Numbers numbers;
    
        public Test(){
          numbers = new Numbers();
          int number1 = numbers.getNumber(0);
          int number2 = numbers.getNumber(1);
        }
      }
    
    0 讨论(0)
  • 2020-12-23 18:49

    Put them in an arrayList in your first class like:

    import java.util.ArrayList;
        public class numbers {
    
        private int number1 = 50;
        private int number2 = 100;
    
        public ArrayList<int> getNumberList() {
            ArrayList<int> numbersList= new ArrayList<int>();
            numbersList.add(number1);
            numberList.add(number2);
            ....
            return numberList;
        }
    }
    

    Then, in your test class you can call numbers.getNumberList() to get your arrayList. In addition, you might want to create methods like addToList / removeFromList in your numbers class so you can handle it the way you need it.

    You can also access a variable declared in one class from another simply like

    numbers.numberList;
    

    if you have it declared there as public.

    But it isn't such a good practice in my opinion, since you probably need to modify this list in your code later. Note that you have to add your class to the import list.

    If you can tell me what your app requirements are, i'll be able tell you more precise what i think it's best to do.

    0 讨论(0)
  • 2020-12-23 18:53

    Two ways

    1)instantiate the first class and getter for arrayList

    or

    2)Make arraylist as static

    And finally

    Java Basics By Oracle

    0 讨论(0)
提交回复
热议问题