2017-04-07 7 views
0

私は、1つのリストに保存リストを反復し、それはデータの種類に基づいてさまざまなアクションを実行したい文字列を、ダブル、int型で構成されたVARSのリストを持っています。異なるデータ型のリストを作成し、型に基づいて異なるアクションを反復して実行する方法は?

は当初、私は、私はこれを達成するためのArrayListを作成することができると思ったが、これらのいくつかは、プリミティブ型ではなくオブジェクトであるので、これは動作しませんでした。

私はリストがありますどのように多くの各項目のかわからないので、私は、私は、このためのすべての異なる種類を保持するオブジェクトを作成することができるとは思いません。

これを達成するための最良の方法は何ですか?

+0

* *あなたがこれを行うにはしたくないのはなぜ?おそらく、それを達成するためのより良い方法があります。 –

+2

ラッパークラスが各プリミティブ型に存在するという事実に気づいていますか? [Wikipedia記事](https://en.wikipedia.org/wiki/Primitive_wrapper_class)を参照してください。また、[autoboxin/unboxing](https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html)もこれをさらに容易にします。 –

+0

ArrayListには、すでに追加したプリミティブ型のラッパーが含まれています。 –

答えて

1
  1. クラスは、任意のタイプを格納できるので、これを達成するための別の方法です。 In 私は、異なるタイプの 変数を持つ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); 
    
        } 
    
    } 
    

    2.その他の代替は、オブジェクト型のArrayListの

    List<Object> list=new Arraylist<Object>(); 
    list.add(100); 
    list.add("hi") 
    list.add(12.0) 
    
0

あなたはいつもの代わりに整数の整数、浮動小数点の代わりに、フロートなどのプリミティブ型からオブジェクト表現を使用することができ、などを作成していますこのようにして、プリミティブ型の場合と同じように、デフォルト値の代わりにnull概念を使用してデータが有効でないケースを識別できます。 あなたは特別な振る舞いをしたい場合は、Visitorパターン(https://www.tutorialspoint.com/design_pattern/visitor_pattern.htm)のようないくつかのパターを実装することができます。

関連する問題