java 存储重复的key,value

1 篇文章 0 订阅

遇到个面试,搞ip的 需要一对ip A B不能重复{就是 A B,B A只能有一个}

没做出来,回来弄了一个。

 

思路:set存储类,类中设置key,value,重写hashcode和equals方法使得适应所定规则,最终存储完成后输出

1.设计的类

package com.xing.java;

public class PairIP {
    String key;
    String value;
    PairIP(String a,String b){
        key=a;
        value=b;
    }

    @Override
    public int hashCode() {
        return 1;
    }

    @Override
    public boolean equals(Object obj) {
        obj=(PairIP)obj;
        if(((PairIP) obj).key.equals(key)&&((PairIP) obj).value.equals(value)||((PairIP) obj).key.equals(value)&&((PairIP) obj).value.equals(key)){
            return true;
        }
        else{
            return false;
        }
    }

    @Override
    public String toString() {
        return "PairIP{" +
                "key='" + key + '\'' +
                ", value='" + value + '\'' +
                '}';
    }
}

2.

package com.xing.java;

import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;

public class DistKeyValue {
    public static void main(String[] args) {
        PairIP p1 = new PairIP("1","2");
        PairIP p2 = new PairIP("1","2");
        PairIP p3 = new PairIP("2","1");
        PairIP p4 = new PairIP("1111","2");
        PairIP p5 = new PairIP("1","2");
        PairIP p6 = new PairIP("2","1111");
        PairIP p7 = new PairIP("2","1");
        PairIP p8 = new PairIP("11","2");
        PairIP p9 = new PairIP("12","11");
        PairIP p10 = new PairIP("1111","3");
        PairIP p11 = new PairIP("1111","4");
        PairIP p12 = new PairIP("1111","4");
        Set<PairIP> allIP=new HashSet<PairIP>();
        allIP.add(p1);
        allIP.add(p2);
        allIP.add(p3);
        allIP.add(p4);
        allIP.add(p5);
        allIP.add(p6);
        allIP.add(p7);
        allIP.add(p8);
        allIP.add(p9);
        allIP.add(p1);
        allIP.add(p2);
        allIP.add(p3);
        allIP.add(p4);
        allIP.add(p5);
        allIP.add(p6);
        allIP.add(p10);
        allIP.add(p11);
        allIP.add(p12);
        allIP.add(p10);
        allIP.add(p11);
        for (PairIP p:allIP
             ) {
            System.out.println(p);
        }

    }
}

输出结果

 如果有什么更好的方法可以告我一下啊。

参考:

java set

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值