Java 重载同一方法以打印不同的数据类型arraylist

Java 重载同一方法以打印不同的数据类型arraylist,java,compiler-errors,overloading,Java,Compiler Errors,Overloading,我的任务是重载相同的方法,能够使用相同的方法名,打印到屏幕上,这两个数组的内容列表内容 下面是我尝试过的代码。但这两种方法都有相同的名称,所以不起作用 import java.util.ArrayList; public class Tutotrial_2_1 { public static void main(String[] args){ //Creating integer type array list ArrayList<Integer>listOfAg

我的任务是重载相同的方法,能够使用相同的方法名,打印到屏幕上,这两个数组的内容列表内容

下面是我尝试过的代码。但这两种方法都有相同的名称,所以不起作用

import java.util.ArrayList;

public class Tutotrial_2_1 {

public static void main(String[] args){
    //Creating integer type array list
    ArrayList<Integer>listOfAges = new ArrayList<Integer>();
    //Adding items to array list
    listOfAges.add(25);
    listOfAges.add(36);
    listOfAges.add(45);
    listOfAges.add(67);
    listOfAges.add(87);
    listOfAges.add(32);
    listOfAges.add(33);
    listOfAges.add(45);
    
    //Creating double type array list
    ArrayList<Double>listOfMarks = new ArrayList<Double>();
    //Adding items to array list
    listOfMarks.add(25.4);
    listOfMarks.add(36.5);
    listOfMarks.add(4.45);
    listOfMarks.add(55.67);
    listOfMarks.add(55.7);
    listOfMarks.add(32.0);
    listOfMarks.add(33.0);
    listOfMarks.add(45.0);
    
    //Calling display function of integer array
    displayArray(listOfAges);
    displayArray(listOfMarks);
}

//Display fucntion of listOfAges array
public static void displayArray(ArrayList<Integer>list){
    for(Integer indexes : list){
        System.out.println(indexes);
    }
}
public static void displayArray(ArrayList<Double>list){
    for(Double indexes : list){
        System.out.println(indexes);
    }
}
import java.util.ArrayList;
公共级家庭教师2 1{
公共静态void main(字符串[]args){
//创建整型数组列表
ArrayListFages=新的ArrayList();
//向数组列表中添加项
增加(25);
增加(36);
增加(45);
增加(67);
增加(87);
增加(32);
增加(33)页;
增加(45);
//创建双类型数组列表
ArrayListIstofMarks=新的ArrayList();
//向数组列表中添加项
增加(25.4);
增加(36.5);
增加(4.45);
增加(55.67);
增加(55.7);
增加(32.0);
增加(33.0);
加上(45.0);
//调用整数数组的显示函数
显示数组(页面列表);
显示阵列(标记列表);
}
//listOfAges数组的显示功能
公共静态void displayArray(ArrayList){
for(整数索引:列表){
System.out.println(索引);
}
}
公共静态void displayArray(ArrayList){
for(双索引:列表){
System.out.println(索引);
}
}
}因为您不能在泛型类型上重载方法。换句话说,有两个方法解析为
displayArray(ArrayList)
,因此对于双重声明的方法,将出现编译错误

幸运的是,这里不需要重载方法-因为Java中的任何对象都有一个
toString
方法,所以您可以只使用一个方法来接收列表,对其进行迭代,并打印每个项目:

publicstaticvoiddisplayArray(列表){
用于(对象索引:列表){
System.out.println(索引);
}
}
因为您不能在泛型类型上重载方法。换句话说,有两个方法解析为
displayArray(ArrayList)
,因此对于双重声明的方法,将出现编译错误

幸运的是,这里不需要重载方法-因为Java中的任何对象都有一个
toString
方法,所以您可以只使用一个方法来接收列表,对其进行迭代,并打印每个项目:

publicstaticvoiddisplayArray(列表){
用于(对象索引:列表){
System.out.println(索引);
}
}

如果我理解您的问题,如果您这样更改方法:

public static void main(String[] args) {
  //Creating integer type array list
  ArrayList<Integer> listOfAges = new ArrayList<Integer>();
  //Adding items to array list
  listOfAges.add(25);
  listOfAges.add(36);
  listOfAges.add(45);
  listOfAges.add(67);
  listOfAges.add(87);
  listOfAges.add(32);
  listOfAges.add(33);
  listOfAges.add(45);

  //Creating double type array list
  ArrayList<Double>listOfMarks = new ArrayList<Double>();
  //Adding items to array list
  listOfMarks.add(25.4);
  listOfMarks.add(36.5);
  listOfMarks.add(4.45);
  listOfMarks.add(55.67);
  listOfMarks.add(55.7);
  listOfMarks.add(32.0);
  listOfMarks.add(33.0);
  listOfMarks.add(45.0);

  //Calling display function of integer array
  displayArray(listOfAges);
  displayArray(listOfMarks);
}

//Display function of listOfAges array
public static <T> void displayArray(ArrayList<T>list){
  for(T indexes : list){
    System.out.println(indexes);
  }
}
publicstaticvoidmain(字符串[]args){
//创建整型数组列表
ArrayList listOfAges=新的ArrayList();
//向数组列表中添加项
增加(25);
增加(36);
增加(45);
增加(67);
增加(87);
增加(32);
增加(33)页;
增加(45);
//创建双类型数组列表
ArrayListIstofMarks=新的ArrayList();
//向数组列表中添加项
增加(25.4);
增加(36.5);
增加(4.45);
增加(55.67);
增加(55.7);
增加(32.0);
增加(33.0);
加上(45.0);
//调用整数数组的显示函数
显示数组(页面列表);
显示阵列(标记列表);
}
//listOfAges数组的显示功能
公共静态void displayArray(ArrayList){
for(T索引:列表){
System.out.println(索引);
}
}

它应该会起作用。将用作泛型类型。

如果我理解您的问题,如果您这样更改方法:

public static void main(String[] args) {
  //Creating integer type array list
  ArrayList<Integer> listOfAges = new ArrayList<Integer>();
  //Adding items to array list
  listOfAges.add(25);
  listOfAges.add(36);
  listOfAges.add(45);
  listOfAges.add(67);
  listOfAges.add(87);
  listOfAges.add(32);
  listOfAges.add(33);
  listOfAges.add(45);

  //Creating double type array list
  ArrayList<Double>listOfMarks = new ArrayList<Double>();
  //Adding items to array list
  listOfMarks.add(25.4);
  listOfMarks.add(36.5);
  listOfMarks.add(4.45);
  listOfMarks.add(55.67);
  listOfMarks.add(55.7);
  listOfMarks.add(32.0);
  listOfMarks.add(33.0);
  listOfMarks.add(45.0);

  //Calling display function of integer array
  displayArray(listOfAges);
  displayArray(listOfMarks);
}

//Display function of listOfAges array
public static <T> void displayArray(ArrayList<T>list){
  for(T indexes : list){
    System.out.println(indexes);
  }
}
publicstaticvoidmain(字符串[]args){
//创建整型数组列表
ArrayList listOfAges=新的ArrayList();
//向数组列表中添加项
增加(25);
增加(36);
增加(45);
增加(67);
增加(87);
增加(32);
增加(33)页;
增加(45);
//创建双类型数组列表
ArrayListIstofMarks=新的ArrayList();
//向数组列表中添加项
增加(25.4);
增加(36.5);
增加(4.45);
增加(55.67);
增加(55.7);
增加(32.0);
增加(33.0);
加上(45.0);
//调用整数数组的显示函数
显示数组(页面列表);
显示阵列(标记列表);
}
//listOfAges数组的显示功能
公共静态void displayArray(ArrayList){
for(T索引:列表){
System.out.println(索引);
}
}

它应该会起作用。作为泛型类型使用。

到底什么不起作用?你能分享你的全部错误跟踪吗?另外,请在
ArrayList列表
ArrayList列表
中留出一个空格。错误:名称冲突:displayArray(ArrayList)和displayArray(ArrayList)具有相同的擦除功能。究竟什么不起作用?你能分享你的全部错误跟踪吗?另外,请在
ArrayList列表
ArrayList列表
中留出一个空格。错误:名称冲突:displayArray(ArrayList)和displayArray(ArrayList)具有相同的擦除