2011-10-31 17 views
10

के अंदर कोई मान कैसे प्राप्त करें I ArrayList में से कोई मान प्राप्त करने का प्रयास कर रहा हूं। यहाँ मेरी कोड का एक नमूना है:एक ArrayList जावा

public static void main (String [] args){ 
    Car toyota= new Car("Toyota", "$10000", "300"+ "2003"); 
    Car nissan= new Car("Nissan", "$22000", "300"+ "2011"); 
    Car ford= new Car("Ford", "$15000", "350"+ "2010"); 

    ArrayList<Car> cars = new ArrayList<Car>(); 
    cars.add(toyota);   
    cars.add(nissan); 
    cars.add(ford); 
} 

public static void processCar(ArrayList<Car> cars){ 

    // in heare i need a way of getting the total cost of all three cars by calling 
    // computeCars() 
    System.out.println(cars.get()); 
} 

संशोधन धन्यवाद सभी प्रश्नों के उत्तर के लिए, मैं शायद कोड में थोड़ा और अधिक जोड़ने चाहिए। कार वर्ग में, मेरे पास एक और तरीका है जो कर सहित कुल लागत की गणना कर रहा है।

class Car { 
    public Car (String name, int price, int, tax, int year){ 
     constructor....... 
    } 

    public void computeCars(){ 
     int totalprice= price+tax; 
     System.out.println (name + "\t" +totalprice+"\t"+year); 
    } 
} 
मुख्य वर्ग में

public static void processCar(ArrayList<Car> cars){ 
    int totalAmount=0; 
    for (int i=0; i<cars.size(); i++){ 
     cars.get(i).computeCars(); 
     totalAmount=+ ?? // in need to add the computed values of totalprice from the Car class? 
    } 
} 

धन्यवाद फिर से

उत्तर

10

कीमत के लिए एक गेटर विधि मान लिया जाये कि अपने Car वर्ग है, तो आप बस

System.out.println (car.get(i).getPrice()); 

जहां i तत्व का सूचकांक है उपयोग कर सकते हैं।

तुम भी

Car c = car.get(i); 
System.out.println (c.getPrice()); 

उपयोग कर सकते हैं आप भी अगर आप इसे

मुख्य

public static void processCar(ArrayList<Car> cars){ 
    int totalAmount=0; 
    for (int i=0; i<cars.size(); i++){ 
     int totalprice= cars.get(i).computeCars(); 
     totalAmount=+ totalprice; 
    } 
} 

की दुकान और के return प्रकार बदलने की जरूरत है अपने कार्य से totalprice वापस जाने के लिए की जरूरत है आपका फ़ंक्शन

public int computeCars(){ 
    int totalprice= price+tax; 
    System.out.println (name + "\t" +totalprice+"\t"+year); 
    return totalprice; 
} 
+0

नमस्ते, मदद के लिए धन्यवाद, मैंने कोशिश की लेकिन यह कह रहा है कि यह एक int की उम्मीद है लेकिन शून्य पाया गया है। मुझे यकीन नहीं है कि इसके आसपास कैसे जाना है। एक बार फिर धन्यवाद – blackStar

4

आप अपने Car प्रकार नहीं दिखाया गया है, लेकिन यह सोचते हैं आप पहली बार कार की कीमत चाहते हैं, तो आप इस्तेमाल कर सकते हैं:

public static void processCars(ArrayList<Car> cars) { 
    Car car = cars.get(0); 
    System.out.println(car.getPrice()); 
} 

ध्यान दें कि मैंसे सूची का नाम बदल दिया है 210 से cars - यह सूची कारों की है, एकल कार नहीं है। (। मैं एक समान तरीके से विधि नाम बदल दिया है)

आप केवल विधि एक एकल कार पर कार्रवाई करना चाहते हैं, तो आप पैरामीटर बदलना चाहिए प्रकार Car का होना:

public static void processCar(Car car) 

और उसके बाद इस तरह इसे कहते:

// In the main method 
processCar(cars.get(0)); 

पूरी सूची प्रसंस्करण के रूप में छोड़ आप कर है, यहपैरामीटर सामान्यीकरण के लायक हो जाएगा- यह संभावना नहीं है कि आपको वास्तव में इसकी आवश्यकता होगी कि यह ArrayList<Car> है।

+0

ऐरेलिस्ट में टाइप कार होना चाहिए, कार नहीं ;-) – stiank81

+0

@ stiank81: मुझे लगता है कि आप का मतलब है कि घर के जवाब को संबोधित करने के लिए टिप्पणी, मेरा नहीं ... –

+0

असल में आप में भी यह गलत था, लेकिन पेटार संपादित यह .. कोई बड़ा सौदा नहीं .. – stiank81

0

सूची में कई तत्व हो सकते हैं, इसलिए प्राप्त विधि एक तर्क लेती है: उस तत्व की अनुक्रमणिका जिसे आप पुनर्प्राप्त करना चाहते हैं। यदि आप पहले को चाहते हैं, तो यह 0 है।

सूची कार उदाहरण हों, तो आप सिर्फ

Car firstCar = car.get(0); 
String price = firstCar.getPrice(); 

या सिर्फ

String price = car.get(0).getPrice(); 

car चर cars नाम दिया जाना चाहिए क्या करना है, क्योंकि यह एक सूची है और इस तरह कई कारों में शामिल है।

tutorial about collections पढ़ें। और javadoc का उपयोग करना सीखें: सभी वर्गों और विधियों को दस्तावेज किया गया है।

0

आपको की बजाय अपनी सूची cars नाम देनी चाहिए, ताकि उसका नाम इसकी सामग्री से मेल खा सके।

तो आप बस cars.get(0).getPrice() कह सकते हैं। और यदि आपकी Car कक्षा में अभी तक यह विधि नहीं है, तो आपको इसे बनाना होगा।

0

क्या आप सरणी सूची के माध्यम से पुनरावृति करना है सभी कारों की कीमत प्राप्त करना चाहते हैं:

public static void processCars(ArrayList<Cars> cars) { 
    for (Car c : cars) { 
     System.out.println (c.getPrice()); 
    } 
} 
1

मुख्य वर्ग

public class Test { 
    public static void main (String [] args){ 
     Car thisCar= new Car ("Toyota", "$10000", "2003"); 
     ArrayList<Car> car= new ArrayList<Car>(); 
     car.add(thisCar); 
     processCar(car); 
    } 

    public static void processCar(ArrayList<Car> car){ 
     for(Car c : car){ 
      System.out.println (c.getPrice()); 
     } 
    } 
} 

कार वर्ग

public class Car { 
    private String vehicle; 
    private String price; 
    private String model; 

    public Car(String vehicle, String price, String model){ 
     this.vehicle = vehicle; 
     this.model = model; 
     this.price = price; 
    } 

    public String getVehicle() { 
     return vehicle; 
    } 

    public String getPrice() { 
     return price; 
    } 

    public String getModel() { 
     return model; 
    } 
}