作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Java 问题陈述:如何使计算机类具有可用的打印机列表。
我想要一个计算机类(类似这样的)来完成问题陈述
public class Computers{
String computername;
//printerlist
public static ArrayList<String> printers=new ArrayList<String>();
// computername-Printerlist
public Map<String,ArrayList<String>> printerDB=newHashMap<String,ArrayList<String>>();
public Computers(String computername){
this.computername=computername;
// now what to put here so that each computer having a
// different computer name will have a list of printers available to it>
}
}
最佳答案
首先,让我们定义一个打印机类。
package com.ggl.modeltest;
public class Printer {
private String companyName;
private String printerName;
public Printer(String companyName, String printerName) {
this.companyName = companyName;
this.printerName = printerName;
}
public String getCompanyName() {
return companyName;
}
public String getPrinterName() {
return printerName;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((companyName == null) ? 0 : companyName.hashCode());
result = prime * result
+ ((printerName == null) ? 0 : printerName.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Printer other = (Printer) obj;
if (companyName == null) {
if (other.companyName != null)
return false;
} else if (!companyName.equals(other.companyName))
return false;
if (printerName == null) {
if (other.printerName != null)
return false;
} else if (!printerName.equals(other.printerName))
return false;
return true;
}
public Printer copy() {
return new Printer(companyName, printerName);
}
}
Computer
中使用它们。类。
Computer
类。
package com.ggl.modeltest;
import java.util.ArrayList;
import java.util.List;
public class Computer {
private List<Printer> printerNames;
private String computerName;
public Computer(String computerName) {
this.computerName = computerName;
this.printerNames = new ArrayList<Printer>();
}
public void addPrinter(Printer printerName) {
this.printerNames.add(printerName);
}
public void removePrinter(Printer printerName) {
for (int i = printerNames.size() - 1; i >= 0; i--) {
if (printerNames.get(i).equals(printerName)) {
printerNames.remove(i);
}
}
}
public List<Printer> getPrinterNames() {
return printerNames;
}
public String getComputerName() {
return computerName;
}
}
List
中删除打印机的所有实例。 ,以防输入多个。
List
的实例。 .调用程序可以更改此列表的内容。如果你想确保调用程序不能改变列表的内容,你可以做一个
List
的深拷贝。 .
Printer
编写一个复制方法。类。
public Printer copy() {
return new Printer(companyName, printerName);
}
getPrinterNames
中循环调用这个复制方法
Computer
的方法类。
public List<Printer> getPrinterNames() {
List<Printer> list = new ArrayList<Printer>();
for (Printer printer : printerNames) {
list.add(printer.copy());
}
return list;
}
关于Java 程序语句 : How to make a computer class having a list of printers available to it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17362197/
我是一名优秀的程序员,十分优秀!