我有一个由字符串、双精度和整数组成的变量列表,我想将它们存储在一个列表中,遍历列表并根据数据类型执行不同的操作。
最初我以为我可以创建一个 ArrayList 来实现这一点,但其中一些是基元类型而不是对象,所以这不起作用。
我不知道列表将包含多少个项目,因此我认为我无法创建一个对象来保存所有不同类型的内容。
实现这一目标的最佳方法是什么?
-
类也是实现此目的的替代方法,因为我们可以存储任何类型的。在 以下解决方案我创建了具有不同类型的员工类变量。
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); } }
2.其他替代方法是创建对象类型的数组列表
List<Object> list=new Arraylist<Object>(); list.add(100); list.add("hi") list.add(12.0)
您始终可以使用基元类型的 Object 表示形式,例如 Float 而不是 float,Integer 而不是整数等。这样,您可以使用 null 概念而不是基元类型中的默认值来识别数据无效的情况。如果需要特殊行为,可以实现一些模式,如访客模式 (https://www.tutorialspoint.com/design_pattern/visitor_pattern.htm(。