Java 如何创建不同数据类型的列表,根据类型迭代并执行不同的操作?

Java 如何创建不同数据类型的列表,根据类型迭代并执行不同的操作?,java,Java,我有一个由字符串、double和int组成的变量列表,我希望将它们存储在一个列表中,遍历列表并根据数据类型执行不同的操作 起初我以为我可以创建一个ArrayList来实现这一点,但其中一些是基本类型而不是对象,所以这不起作用 我不知道列表中的每个项目有多少个,所以我不认为我可以创建一个对象来保存所有不同的类型 实现这一目标的最佳方式是什么 类也是实现这一点的替代方法,因为我们可以存储任何类型。在里面 在下面的解决方案中,我创建了不同类型的Employee类 变数 public class

我有一个由字符串、double和int组成的变量列表,我希望将它们存储在一个列表中,遍历列表并根据数据类型执行不同的操作

起初我以为我可以创建一个ArrayList来实现这一点,但其中一些是基本类型而不是对象,所以这不起作用

我不知道列表中的每个项目有多少个,所以我不认为我可以创建一个对象来保存所有不同的类型

实现这一目标的最佳方式是什么

  • 类也是实现这一点的替代方法,因为我们可以存储任何类型。在里面 在下面的解决方案中,我创建了不同类型的Employee类 变数

        public class Employee {
    
       static List<Employee> employeeList = new ArrayList<Employee>();
        private int id;
        private String firstName;
        private int age;
        private double salary;
        private String department;
    
        public Employee(int id, String firstName, int age, double salary, 
        String department) {
        this.id = id;
        this.firstName = firstName;
        this.age = age;
        this.salary = salary;
        this.department = department;
        }
    
        public static void main(String[] argv) {
        Employee employee1 = new Employee(1, "Pavan", 45, 20000.00, 
        "Uppal");
        Employee employee2 = new Employee(2, "Mahesh", 35, 10000.00, 
        "Uppal");       
    
        employeeList.add(employee1);
        employeeList.add(employee2);
    
       }
    
     }
    
    公共类员工{
    静态列表employeeList=newArrayList();
    私有int-id;
    私有字符串名;
    私人互联网;
    私人双薪;
    私人弦乐部;
    公共雇员(整数id、字符串名字、整数年龄、双薪、,
    (弦乐部){
    this.id=id;
    this.firstName=firstName;
    这个。年龄=年龄;
    这个。薪水=薪水;
    这个部门=部门;
    }
    公共静态void main(字符串[]argv){
    雇员1=新雇员(1,“Pavan”,4520000.00,
    “Uppal”);
    雇员雇员2=新雇员(2,“Mahesh”,3510000.00,
    “Uppal”);
    employeeList.add(employee1);
    employeeList.add(employee2);
    }
    }
    
    2.另一种选择是创建对象类型的Arraylist

     List<Object> list=new Arraylist<Object>();
     list.add(100);
     list.add("hi")
     list.add(12.0)
    
    List List=new Arraylist();
    增加(100);
    列表。添加(“hi”)
    列表。添加(12.0)
    

  • 您始终可以使用基本类型的对象表示,如Float而不是Float、Integer而不是Integer等。这样,您可以使用null概念而不是默认值来识别数据无效的情况,就像基本类型一样。
    如果需要特殊的行为,可以实现一些模式,比如Visitor模式()。

    为什么要这样做?也许有更好的方法来实现这一点。您是否知道每个基元类型都有包装器类?看。您会发现ArrayList已经包含了添加到其中的基本类型的包装器。