Как получить значение внутри java-массива 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());
}

пересмотр спасибо всем за ответы, я должен, вероятно, добавить к коду немного больше. в классе Car, у меня есть другой метод, который вычисляет общую стоимость, включая налог.

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?
    }
}

Еще раз спасибо

Ответ 1

Предполагая, что ваш класс Car имеет метод getter для цены, вы можете просто использовать

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

где i - индекс элемента.

Вы также можете использовать

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

Вам также нужно вернуть totalprice из вашей функции, если вам нужно сохранить его

Основной

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 вашей функции

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

Ответ 2

Вы не указали свой тип Car, но при условии, что вам нужна цена на первый автомобиль, вы можете использовать:

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

Обратите внимание, что я изменил имя списка с Car на cars - это список автомобилей, а не один автомобиль. (Я изменил имя метода аналогичным образом.)

Если вы хотите, чтобы метод обрабатывал только один автомобиль, вы должны изменить параметр типа Car:

public static void processCar(Car car)

а затем вызовите его следующим образом:

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

Если вы оставите его обработкой всего списка, стоило бы обобщить параметр на List<Car> - маловероятно, что вы действительно потребуете, чтобы он ArrayList<Car>.

Ответ 3

Вы должны назвать свой список cars вместо car, чтобы его имя соответствовало его контенту.

Тогда вы можете просто сказать cars.get(0).getPrice(). И если ваш класс car еще не имеет этого метода, его необходимо создать.

Ответ 4

основной класс

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;
    }  
}

Ответ 5

Список может содержать несколько элементов, поэтому метод get принимает аргумент: индекс элемента, который вы хотите получить. Если вы хотите первый, то он 0.

Список содержит экземпляры автомобилей, поэтому вам просто нужно сделать

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

или просто

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

Переменная car должна быть названа cars, так как она содержит список и, следовательно, содержит несколько автомобилей.

Прочитайте учебник о коллекциях. И научитесь использовать javadoc: все классы и методы задокументированы.

Ответ 6

Если вы хотите получить цену на все автомобили, вам нужно перебирать список массивов:

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

Ответ 7

import java.util.*;
import java.lang.*;
import java.io.*;

class hari
{
public static void main (String[] args) throws Exception
{  Scanner s=new Scanner(System.in);
    int i=0;
    int b=0;
    HashSet<Integer> h=new HashSet<Integer>();
    try{
        for(i=0;i<1000;i++)
    {   b=s.nextInt();
        h.add(b);
    }
    }
    catch(Exception e){
        System.out.println(h+","+h.size());
    }
}

}