gpt4 book ai didi

java - 从 ArrayList 中检索单个值

转载 作者:行者123 更新时间:2023-12-01 18:08:43 27 4
gpt4 key购买 nike

我面临着如何从 ArrayList 中检索值的问题。我使用以下代码传入值以删除重复项:

Set<List<String>> allTCP=new LinkedHashSet<List<String>>();
for(int x=0; x < TCPSourceIP.size();x++){
allTCP.add(Arrays.asList(new String[]{TCPSourceIP.get(x),TCPSourcePort.get(x),TCPDestIP.get(x),TCPDestPort.get(x)}));
}

但现在我面临的问题是我不知道如何检索该值。我传入的值是 10.1.1.1, 123, 10.1.1.2, 234 如果我使用 System.out.println(allTCP),那么我无法使用每个我需要从数组中获取单个值才能进行正确的输出,例如,TCP 源 IP 为 10.1.1.1,端口为 123,目标 IP 10.1.1.2 为端口 234。以前我使用此代码进行输出,但它没有删除重复项。

for(int x=0; x < TCPSourceIP.size(); x++){
jTextArea1.append(x+1+")IP " + TCPSourceIP.get(x) +" is sending packet using TCP Port "+
TCPSrcPort.get(x) + " to IP " + TCPDestIP.get(x) + "(" + TCPDestPort.get(x) +")" +
" which is non-standard port\n");

任何人都可以给我关于如何从 ArrayList 检索值以便我进行正确输出的建议吗?如有帮助,我们将不胜感激。

最佳答案

在这种情况下,我更喜欢将值封装到带有 getter/setter 的对象中,并将这些实例放入列表/哈希中:

class Route {
private String sourceIp;
private Long sourcePort;
private String destIp;
private Long destPort;

public Route(Sting src, Long sport, String dest, Long dport) {
setSourceIp(src);
...
... etc.

然后

ArrayList<Route> allTcp = new ArrayList<Route>();
...
allTcp.add(new Route(src, sport, dst, dport) );

这个概念将通过将复杂的比较方法放入类 Route 中,提供一种简单的方法来查找任何源、目的地、端口等。对内部路由集的任何更改都不会干扰调用者。

关于java - 从 ArrayList 中检索单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34491245/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com