在Java中,如何从不同的类调用变量并将其添加到ArrayList的末尾?
我正在尝试制作一个程序来练习ArrayList,它接受几个用户输入的数字,并将输入的正数相加。然后它应该打印所有的正数,总数在末尾,例如[1,-2,3,-4,5]变成[1,3,5,9]。我知道我的代码是不正确的,因为这不是从另一个类调用方面的方式,但我已经尝试了几种方法,我一直在研究如何使用ArrayList来实现这一点。任何帮助都将不胜感激在Java中,如何从不同的类调用变量并将其添加到ArrayList的末尾?,java,arraylist,Java,Arraylist,我正在尝试制作一个程序来练习ArrayList,它接受几个用户输入的数字,并将输入的正数相加。然后它应该打印所有的正数,总数在末尾,例如[1,-2,3,-4,5]变成[1,3,5,9]。我知道我的代码是不正确的,因为这不是从另一个类调用方面的方式,但我已经尝试了几种方法,我一直在研究如何使用ArrayList来实现这一点。任何帮助都将不胜感激 import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import java.util.*;
import java.io.*;
class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter the length of your ArrayList: ");
int black = scan.nextInt();
Scanner scan2 = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<Integer>();
System.out.println("Enter numbers: ");
for(int i = 0; i < black; i++) {
list.add(scan.nextInt());
}
/* call azure and add to the end of list */
System.out.println(appendPosSum(newC));
}
public static int appendPosSum(ArrayList<Integer> list) {
int azure = 0;
ArrayList<Integer> newC = new ArrayList<Integer>();
for(int i = 0; i < list.size(); i++) {
if(list.get(i) > 0) {
newC = list.get(i);
azure += list.get(i);
}
}
return azure;
return newC;
}
}
import java.util.ArrayList;
导入java.util.array;
导入java.util.Scanner;
导入java.util.*;
导入java.io.*;
班长{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入ArrayList的长度:”);
int black=scan.nextInt();
扫描仪scan2=新扫描仪(System.in);
ArrayList=新建ArrayList();
System.out.println(“输入数字:”);
对于(int i=0;i0){
newC=list.get(i);
azure+=list.get(i);
}
}
返回蔚蓝;
返回newC;
}
}
建议:创建类的实例:
您可以使用以下代码在主类中创建另一个类的实例:
other root = new other();
确保类名是正确的。例如,如果该类被称为Wonderful,则代码应为:
Wonderful root = new Wonderful();
因此,通过引用root,您就引用了精彩的类
否则:继承类:如果您想“连接”这些类,而其他类与Main类似,这是不可能的,您可以使用继承。继承类似于族谱或分类法:一个类/对象与另一个类共享变量或方法。例如,公共类程序员扩展了人。在本例中,程序员继承了人类的所有特征,但也有自己的特征。因此,如果您编写了公共类other extensed Main
,other将是Main的一个扩展,具有自己的特性。下面是一个继承的例子:
public class Panda extends Animal{
public Panda() {
super("Panda");
System.out.println("Panda0");
}
public Panda(String name) {
System.out.println("Panda1");
}
public String getName() {
System.out.println("Panda: getName");
return "Panda: "+ super.getName();
}
public String toString() {
System.out.println("Panda: toString");
return getName();
}
}
请注意,super用于引用“parent”或扩展类中的方法,因此,由于您有两个主要方法,如果您使用继承,则其他方法的main将是
main()
,而主类main将是super.main()
,感谢您的提示!我终于让它工作了,现在看起来是这样的:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter the length of your ArrayList: ");
int black = scan.nextInt();
Scanner scan2 = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<Integer>();
System.out.println("Enter numbers: ");
for(int i = 0; i < black; i++) {
list.add(scan.nextInt());
}
System.out.println(appendPosSum(list));
}
public static ArrayList<Integer> appendPosSum (ArrayList<Integer> list){
ArrayList<Integer> newList = new ArrayList<>();
int sum = 0;
for(int num : list) {
if(num > 0) {
newList.add(num);
sum += num;
}
}
newList.add(sum);
return newList;
}
}
import java.util.ArrayList;
导入java.util.array;
导入java.util.Scanner;
导入java.util.*;
导入java.io.*;
公共班机{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入ArrayList的长度:”);
int black=scan.nextInt();
扫描仪scan2=新扫描仪(System.in);
ArrayList=新建ArrayList();
System.out.println(“输入数字:”);
对于(int i=0;i0){
newList.add(num);
sum+=num;
}
}
newList.add(总和);
返回newList;
}
}