遇到个面试,搞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);
}
}
}
输出结果
如果有什么更好的方法可以告我一下啊。
参考: