Java—如何使集合中的某个对象在索引0处返回;
假设我们有一套Java—如何使集合中的某个对象在索引0处返回;,java,Java,假设我们有一套 public Set<CarPartDto> carpart 我们如何制作一个列表,将第一个索引或索引0返回到所需的对象(比如制造商) 这样的预期结果 "manufacturer": nissan, "type": "sedan", "colour": "black", "torque": 139, "maxSpeed": 200,
public Set<CarPartDto> carpart
我们如何制作一个列表,将第一个索引或索引0返回到所需的对象(比如制造商)
这样的预期结果
"manufacturer": nissan,
"type": "sedan",
"colour": "black",
"torque": 139,
"maxSpeed": 200,
"type": "sedan",
"colour": "black",
"torque": 139,
"maxSpeed": 200,
"manufacturer": nissan
实际效果是这样的
"manufacturer": nissan,
"type": "sedan",
"colour": "black",
"torque": 139,
"maxSpeed": 200,
"type": "sedan",
"colour": "black",
"torque": 139,
"maxSpeed": 200,
"manufacturer": nissan
我是这个领域的新手。请帮忙 我无法发表评论,因此: 看起来您想对类型进行排序,只需将类更改为
public class CarPartDto {
public String manufacturer;
public String type;
public String colour;
public Long torque;
public Long maxSpeed;
}
或者,您可以在类中创建一个方法,然后返回所需的格式对象:
public String getCarInfo(){
return "manufacturer: " + manufacturer + "\ntype: " + type + "\ncolour: "+colour + "\ntorque: " + torque + "\nmaxSpeed: " + maxSpeed;
}
只回答标题Java——我们如何使集合中的某个对象在索引0处返回;
集合通常没有用户友好的顺序作为设计目标,尽管有些实现确实有:TreeSet按其自然顺序返回其元素,LinkedHashSet按其插入的顺序返回其元素。
你可以用一个简单的代码,比如
Random r=new Random();
Set<Integer> treeset=new TreeSet<Integer>();
Set<Integer> linked=new LinkedHashSet<Integer>();
Set<Integer> simple=new HashSet<Integer>();
for(int i=0;i<10;i++){
int n=r.nextInt(100);
System.out.print(n+", ");
treeset.add(n);
linked.add(n);
simple.add(n);
}
System.out.println();
for(Object i:treeset.toArray())
System.out.print(i+", ");
System.out.println();
for(Object i:linked.toArray())
System.out.print(i+", ");
for(Object i:simple.toArray())
System.out.print(i+", ");
-第一行是一组随机数,第二行是树集,有序,第三行是LinkedHashSet,保留输入顺序,最后一行是HashSet,具有任意顺序
因此,如果您的问题与Set-s有关,而在撰写本文时似乎并非如此,那么您可以通过使用LinkedHashSet并首先添加该元素来强制执行第一个元素,或者更为深奥的方法是选择/创建具有适当顺序的元素类——也许是这样。但问题更可能与打印一个对象有关,这是代码中某个类似于toString的方法。听起来像是要将汽车信息打印为字符串。在这种情况下,您需要重写CarPartsTo类中的toString方法
@Override
public String toString() {
return "Manufacturer: " + manufacturer + "\n" +
"Type: " + type + ",\n" +
"Colour: " + colour + ",\n" +
"Torque: " + torque + ",\n" +
"MaxSpeed: " + maxSpeed;
}
要调用它,只需在不使用任何方法或使用toString方法的情况下调用对象
for (CarPartDto car : cars) {
System.out.println(car);
}
此外,如果您需要任何其他形式的信息,您也可以编写自己的方法,并在本例中以您需要的任何格式返回字符串:
public String returnCarInfo(){
return "Type: " + type + ",\n" +
"Colour: " + colour + ",\n" +
"Torque: " + torque + ",\n" +
"MaxSpeed: " + maxSpeed + ",\n" +
"Manufacturer: " + manufacturer;
}
并使用该方法调用它
System.out.println(car.returnCarInfo());
希望这有帮助 你有一套。你说的是制作一个列表和索引。你到底想做什么?返回carpart.toArray[0];“第一个索引”是指要首先返回类型?在打印时?你真的能发布你是如何得到上述结果的吗?你刚打印出来吗?请在上下文中发布所有代码。如果您了解自己想要做什么,这对每个人都是最好的。我读过的书有一半没有任何意义。根据您在预期输出中写入的内容,那么为什么不编写一个方法来为您打印这些变量值呢?适当地编辑您的问题。为什么您要依赖于您的输出声明的顺序?实际上,更好的方法是创建一个方法,或者更好的方法是重写对象的toString方法。@Kenny Steegmans我不知道,我总是创建一个自定义方法。但是这个问题解释得太糟糕了,我认为他有一些打印对象的代码,一个简单的重组就可以帮他解决这个问题。我应该去掉第一部分吗?