Java 从对象的ArrayList访问方法
我想知道如何使用方法访问ArrayList中对象的特定元素,但似乎无法使其正常工作。Java 从对象的ArrayList访问方法,java,object,arraylist,Java,Object,Arraylist,我想知道如何使用方法访问ArrayList中对象的特定元素,但似乎无法使其正常工作。 我有一个具有int price和字符串颜色的Phone对象,还有一个返回颜色的方法。 public class Phone { private int price; private String color; 现在让我们假设我创建了一个名为phoneCatalog的电话对象数组列表,并添加了各种电话。 我如何计算有多少部手机是红色的?这是我没有成功的尝试: int count = 0; for(int
我有一个具有int price和字符串颜色的Phone对象,还有一个返回颜色的方法。
public class Phone
{
private int price;
private String color;
现在让我们假设我创建了一个名为phoneCatalog的电话对象数组列表,并添加了各种电话。 我如何计算有多少部手机是红色的?这是我没有成功的尝试:
int count = 0;
for(int x = 0; x < phoneCatalog.size(); x++)
if((phoneCatalog.get(x)).getColor.equals("red")
count++;
int count=0;
对于(int x=0;x
您需要将您的计数
放入if语句中,以便每次条件变为真时,计数的值都会得到更新。如下所示:
public class Main {
private int price;
private String color;
public Main(int price, String color) {
this.price = price;
this.color = color;
}
public String getColor() {
return color;
}
public int getPrice() {
return price;
}
public static void main(String[] args) {
System.out.println("Hello World");
ArrayList < Main > list = new ArrayList < Main > ();
list.add(new Main(1, "Red")); //Adding object in arraylist
list.add(new Main(2, "Blue"));
list.add(new Main(3, "Red"));
list.add(new Main(4, "Red"));
int count = 0;
//looping through values
for (int i = 0; i < list.size(); i++) {
//checking all value in array list
if (list.get(i).getColor().equals("Red")) {
count++;//increment count
}
}
System.out.println("Total Red Color are " + count);
}
}
您需要将您的
count
放入if语句中,以便每次条件变为true时,count的值都会得到更新。如下所示:
public class Main {
private int price;
private String color;
public Main(int price, String color) {
this.price = price;
this.color = color;
}
public String getColor() {
return color;
}
public int getPrice() {
return price;
}
public static void main(String[] args) {
System.out.println("Hello World");
ArrayList < Main > list = new ArrayList < Main > ();
list.add(new Main(1, "Red")); //Adding object in arraylist
list.add(new Main(2, "Blue"));
list.add(new Main(3, "Red"));
list.add(new Main(4, "Red"));
int count = 0;
//looping through values
for (int i = 0; i < list.size(); i++) {
//checking all value in array list
if (list.get(i).getColor().equals("Red")) {
count++;//increment count
}
}
System.out.println("Total Red Color are " + count);
}
}
if((phoneCatalog.get(x)).getColor.equals(“红色”)
应该是if(phoneCatalog.get(x).getColor().equals(“红色”)
对吧?你说这是我不起作用的尝试是什么意思?告诉我们问题if((phoneCatalog.get(x)).getColor.equals(“红色”)
应该是if(phoneCatalog.get(x).getColor().equals(“红色”)
对吗?这是什么意思?这是我的尝试,但不起作用?告诉我们这个问题我不想成为批评家,但是整个psvm
可以用一行替换:long count=Stream.of(new Main(1,“Red”)、new Main(…)、new Main(…)、map(Main::getColor).filter(c->c.equals(“Red”).count())
不知道。谢谢你的建议。我不想成为一个批评家,但是整个psvm
可以被一行替换:long count=Stream.of(new Main(1,“Red”)、new Main(…)、…).map(Main::getColor)。filter(c->c.equals(“Red”)。count();谢谢你的建议。
Total Red Color are 3