我正在尝试修复这段代码,该代码是从具有车牌号和车主列表(该格式)的哈希图进行打印的。我试图通过printOwners()仅打印出所有者;但是我不能不打印重复的东西。
我已经玩了一段时间,但似乎无法跳过重复项。
这是我的代码:
import java.util.ArrayList;
import java.util.HashMap;
public class VehicleRegister {
private HashMap<RegistrationPlate, String> owners;
public VehicleRegister() {
owners = new HashMap<RegistrationPlate, String>();
}
public boolean add(RegistrationPlate plate, String owner) {
//search for existing plate
if (!(owners.containsKey(plate))) { // add if no plate
owners.put(plate, owner);
return true;
}
//if plate is found, check for owner
else if (owners.keySet().equals(owner)) {
return false;
}
return false;
}
public String get(RegistrationPlate plate) {
return owners.get(plate);
}
public boolean delete(RegistrationPlate plate) {
if (owners.containsKey(plate)) {
owners.remove(plate);
return true;
}
return false;
}
public void printRegistrationPlates() {
for (RegistrationPlate item : owners.keySet()) {
System.out.println(item);
}
}
public void printOwners() {
for (RegistrationPlate item : owners.keySet()) {
System.out.println(owners.get(item));
}
}
}
要删除重复项,请使用HashSet<String>
:
public void printOwners() {
for (String s : new HashSet<>(owners.values())) {
System.out.println(s);
}
}
或者使用Java 8 Stream
和distinct()
方法:
public void printOwners() {
owners.values().stream().distinct().forEach(System.out::println);
}
我有一个哈希图,其中一些键指向相同的值。我想找到所有相等的值并打印相应的键。 这是我拥有的当前代码: 当前代码将重复项两次添加到列表中,但它也将每个键添加一次。 谢谢。
问题内容: 我从plist中的字典中加载了一个值,但是当我将其打印到控制台时,它会打印:Optional(Monday Title),而不仅仅是“ Monday Title”。 如何在打印时摆脱值的Optional()? 问题答案: 摆脱的一种方法是使用感叹号: 但是,只有在确定存在该值的情况下,才应这样做。另一种方法是解包和使用条件,例如: 将该程序粘贴到runswiftlang中进行演示:
我一直在做一个倒计时程序,我想到了这个。 在最后的while循环中,如果里面没有print/println语句,倒计时代码就不会执行。为什么?不过,该程序与print语句配合得非常好。
问题内容: 我正在为具有内置行式打印机的Android设备开发应用程序。我必须与此打印机进行交互,并使用它来打印收据上的详细信息,然后使用裁纸器自动剪切该收据。我已经在其中看到了一些ESC命令,但是我不知道如何执行这些ESC命令。 关于Casio设备打印机,我有三个主要问题: 1.我已经使用了内置打印机的打印代码,但是打印后切纸刀没有激活 2.我不知道如何在android中将ESC命令发送到打印机
嘿,我想打印出飞机存储。飞机存储包含字符串和航班的哈希图。这就是flight.add/print进入主端的地方。但我现在希望航空公司和航班并行打印,所以我把航空公司商店和我试图打印出PlaneStore以及航空公司,但我得到的只是一个内存地址,有人能帮我吗?
问题内容: 我有一个: 现在,我想遍历所有值并打印它们。 我这样写: 它似乎不起作用。 问题是什么? 编辑:另一个问题:这个集合是从零开始的吗?我的意思是,如果它具有1个键并且值将为0或1? 问题答案: keySet()仅从哈希图中返回一组键,您应该迭代此键集并使用这些键从哈希图中获取值。 在您的示例中,哈希映射键的类型为,但是您在通用的for循环中指定了密钥,因此无法对其进行编译。您应该将其更改