从另一个 Class 调用 ArrayList
Calling ArrayList From Another Class
我在从另一个 class 调用数组列表时遇到问题。我在里面定义了一个名为 IntBag 的 class 和一个 arraylist 包。在 main 方法中,我想编写一个程序,使我能够从另一个 class 更改 arraylist 的长度。当我尝试时,出现 "cannot find symbol" 错误。你能帮忙吗?
import java.util.*;
public class IntBag
{
private static ArrayList<Integer> bag = new ArrayList<Integer>();
private int maxNumber;
public IntBag(ArrayList bag, int maxNumber)
{
this.bag = bag;
this.maxNumber = maxNumber;
}
public static ArrayList getBag()
{
return bag;
}
public int sizeArray(ArrayList bag)
{
return bag.size();
}
}
public class test
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int choice, size;
IntBag.getBag();
System.out.println("Enter the size of an array : ");
size = scan.nextInt();
bag = new ArrayList<Integer>(size);
}
}
IntBag 是一个非静态 class,这意味着要使用它,您必须创建一个新实例 class。为此,您需要执行以下操作:
IntBag name_of_object = new IntBag();
然后,要引用此对象中的包,您可以通过调用来访问它:
name_of_object.getBag();
要从备用 class 更改 ArraryList 的大小,您需要在 IntBag class:
中包含一个 setter 方法
public void setBag(ArrayList<Integer> newList) {
this.bag = newList;
}
然后,在您的备用 class 中,您可以执行以下操作:
IntBag bag = new IntBag(new ArrayList<Integer>(), 10);
bag.setBag(new ArrayList<Integer>())
您还可以为 maxnumber 变量创建一个类似的 setter:
public void setMaxNumber(int max) {
this.maxNumber = max;
}
但请注意 ArrayList 没有最大或最小大小。当您向其中添加或删除变量时,它们会扩大或缩小。
代码放在哪里?
好好想想吧。在您的主要 class 中,您已经在创建诸如扫描仪和两个整数之类的对象。您只需以相同的方式创建 IntBag 对象,无论您在哪里需要使用它。所以你的主要方法可能看起来像这样:
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int choice, size;
System.out.println("Enter the size of an array : ");
size = scan.nextInt();
ArrayList<Integer> bag = new ArrayList<Integer>(); // arrraylists do not have a size. They automatically expand or decrease
IntBag intBag = new IntBag(bag, 30); // creates a new IntBag object
}
我在从另一个 class 调用数组列表时遇到问题。我在里面定义了一个名为 IntBag 的 class 和一个 arraylist 包。在 main 方法中,我想编写一个程序,使我能够从另一个 class 更改 arraylist 的长度。当我尝试时,出现 "cannot find symbol" 错误。你能帮忙吗?
import java.util.*;
public class IntBag
{
private static ArrayList<Integer> bag = new ArrayList<Integer>();
private int maxNumber;
public IntBag(ArrayList bag, int maxNumber)
{
this.bag = bag;
this.maxNumber = maxNumber;
}
public static ArrayList getBag()
{
return bag;
}
public int sizeArray(ArrayList bag)
{
return bag.size();
}
}
public class test
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int choice, size;
IntBag.getBag();
System.out.println("Enter the size of an array : ");
size = scan.nextInt();
bag = new ArrayList<Integer>(size);
}
}
IntBag 是一个非静态 class,这意味着要使用它,您必须创建一个新实例 class。为此,您需要执行以下操作:
IntBag name_of_object = new IntBag();
然后,要引用此对象中的包,您可以通过调用来访问它:
name_of_object.getBag();
要从备用 class 更改 ArraryList 的大小,您需要在 IntBag class:
中包含一个 setter 方法public void setBag(ArrayList<Integer> newList) {
this.bag = newList;
}
然后,在您的备用 class 中,您可以执行以下操作:
IntBag bag = new IntBag(new ArrayList<Integer>(), 10);
bag.setBag(new ArrayList<Integer>())
您还可以为 maxnumber 变量创建一个类似的 setter:
public void setMaxNumber(int max) {
this.maxNumber = max;
}
但请注意 ArrayList 没有最大或最小大小。当您向其中添加或删除变量时,它们会扩大或缩小。
代码放在哪里?
好好想想吧。在您的主要 class 中,您已经在创建诸如扫描仪和两个整数之类的对象。您只需以相同的方式创建 IntBag 对象,无论您在哪里需要使用它。所以你的主要方法可能看起来像这样:
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int choice, size;
System.out.println("Enter the size of an array : ");
size = scan.nextInt();
ArrayList<Integer> bag = new ArrayList<Integer>(); // arrraylists do not have a size. They automatically expand or decrease
IntBag intBag = new IntBag(bag, 30); // creates a new IntBag object
}