![](/img/trans.png)
[英]How can I print a particular thing from a linked list when they are stored together
[英]How to print a particular element from a linked list
我正在嘗試從LinkedList
存儲的信息中打印IP地址,但是由於IP地址和PC1存儲在一起,因此在執行該操作時有些困惑。 IP地址和PC1存儲在一起。
PlsWork
:
import java.net.InetAddress;
public class PlsWork {
private InetAddress IP;
private String PC;
public PlsWork(InetAddress IP, String PC){
this.IP=IP;
this.PC=PC;
}
public InetAddress getIP(){
return IP;
}
public String getPC(){
return PC;
}
@Override
public String toString() {
return IP + " " + PC;
}
}
WorkPls
:
import java.util.LinkedList;
public class workPls {
private LinkedList List= new LinkedList();
public void addNode(PlsWork st){
List.add(st);
}
public LinkedList getList(){
return List;
}
public void print(){
System.out.println(List);
}
}
主班:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class Linked {
public static void main(String[] args) {
workPls oks = new workPls();
try {
DatagramSocket socket = new DatagramSocket(Integer.parseInt( args[0]));
socket.setSoTimeout(0);
while(true) {
byte []buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer,buffer.length);
socket.receive(packet);
PlsWork ok = new PlsWork(packet.getAddress(),"pc1");
oks.addNode(ok);
oks.print();
}
}
catch (Exception error){
error.printStackTrace();
}
}
}
如何更改打印件才能做到這一點?
當您調用System.out.println()
,它將原子調用toString
,因此您可以覆蓋toString
以使其僅返回IP:
@Override
public String toString() {
return IP;
}
PS:
這是使類名以大寫字母開頭的一種好方法,您可以使用workPls
替換WorkPls
。
無需依賴LinkedList.toString()
為您打印列表(這將依次對列表中的每個項目調用PlsWork.toString()
),您可以手動遍歷列表並根據需要打印每個項目。 例如:
public void print() {
StringBuilder b = new StringBuilder();
for(PlsWork w : List) {
if(b.length>0) {
//add a comma between entries, but not before the first (i.e. only if builder is empty)
b.append(", ");
}
b.append(w.getIP());
}
//following adds curly braces front and end, if desired
b.append('}');
b.insert(0, '}');
//finally print to sysout
System.out.println(b.toString());
}
上面將打印類似:
{1.1.1.1, 2.2.2.2, 3.3.3.3}
(假設3個不同的條目具有這些IP地址)
如果要在打印鏈接列表時僅顯示其鏈接列表中包含的項目的IP,請更改workPls類的方法打印的正文以顯示每個項目IP。
public void print(){
String output = "{";
for(PlsWork item : List) {
output += item.getIP().toString();
output += ", ";
}
output += "}";
System.out.println(output);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.