1、判断两个这个类对象s1,s2是否相等。2、输出两个集合对象的交集。3、输出两个集合对象的并集。4、将一个整型数据插入到一个集合对象中。
5、从一个集合中删除某一个元素。
5、从一个集合中删除某一个元素。
解决方案 »
- BufferedReader流什么情况下到流末尾(readLine()何时返回null)??
- 用java写桌面下雪程序。。求大侠帮助。
- 100分求个正则表达式,项目很急,忙大家帮下忙!
- 关于银行用的DES算法
- 高手们帮忙看一下,怎样解决这个问题
- classloader ClassCastException问题! 急!!!
- JBuilder中如何配置VSS
- 关于异常处理的问题,怎样把异常转换为用户能看懂的信息
- 如何获取一个Image对象存入到BufferedImage中去?thanks
- 急求:Bidr对象(如何通过通过scoket发送给服务端)是啥东西啊。
- CSDN上没有测试论坛嘛?
- 帮忙看个问题,为什么在程序中import 了java.util后还是报找不到Date这个类~~
public static void main(String[] args) {
IntegerArray arr = new IntegerArray(2);
arr.put(1);
arr.put(2);
arr.put(3);
arr.remove(0);
for (Int i : arr.list()) {
System.out.println(i);
}
}
}class IntegerArray {
Int[] internal;
int index = 0; IntegerArray() {
internal = new Int[20];
} IntegerArray(int length) {
internal = new Int[length];
}
IntegerArray(Int[] arr) {
internal = arr;
index = arr.length;
}
public void put(int i) {
if (index == internal.length - 1) {
Int[] copy = new Int[internal.length * 2];
System.arraycopy(internal, 0, copy, 0, internal.length);
internal = copy;
}
internal[index] = new Int(i);
index++;
} public void remove(int index) {
check(index);
Int[] copy = new Int[internal.length - 1];
System.arraycopy(internal, 0, copy, 0, index);
System.arraycopy(internal, index + 1, copy, index, copy.length - index); internal = copy;
} public void check(int index) {
if (index < 0 || index >= internal.length) {
throw new IllegalArgumentException("Paramater is Illegal, " + index);
}
} public Int[] list() {
return internal;
} public static IntegerArray union(IntegerArray a, IntegerArray b) {
//todo:
} public static IntegerArray intersation(IntegerArray a, IntegerArray b) {
//todo:
}
}class Int {
int value; Int(int value) {
this.value = value;
} public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false; Int anInt = (Int) o; if (value != anInt.value) return false; return true;
} public int hashCode() {
return value;
} public String toString() {
return "Int(" + value + ")";
}
}粗略写了一下,交集和并集没有写喔,自己补充完成吧
* 测试 IntegerSet
*
* @param args ...
*/
public static void main(String[] args) {
IntegerSet is1 = new IntegerSet();
IntegerSet is2 = new IntegerSet(); System.out.println("equals: " + is1.equals(is2)); // true is1.add(30);
System.out.println("equals: " + is1.equals(is2)); // false is2.add(30);
System.out.println("equals: " + is1.equals(is2)); // true is1.add(40);
System.out.println("intersection: " + is1.intersectionOf(is2)); // [30]
System.out.println("union: " + is1.unionOf(is2)); // [30, 40] is1.delete(30);
System.out.println("after delete: " + is1.list); // [40]
} // 交集
public ArrayList<Integer> intersectionOf(IntegerSet is) {
ArrayList<Integer> result = new ArrayList<Integer>();
for (Integer i : list) {
if (is.list.contains(i)) {
result.add(i);
}
}
return result;
} // 并集
public ArrayList<Integer> unionOf(IntegerSet is) {
ArrayList<Integer> result = new ArrayList<Integer>();
for (Integer i : list) {
result.add(i);
} for (Integer i : is.list) {
if (!result.contains(i)) {
result.add(i);
}
}
return result;
} @Override
public boolean equals(Object obj) {
if (obj == null || !(obj instanceof IntegerSet)) {
return false;
} IntegerSet that = (IntegerSet) obj;
if (list.size() != that.list.size()) {
return false;
} for (int i = 0; i < list.size(); i++) {
if (!list.get(i).equals(that.list.get(i))) {
return false;
}
}
return true;
} public void add(int n) {
if (list.size() == CAPACITY || list.contains(n) || (n < 20 || n > 80)) {
return;
}
list.add(n);
} public void delete(int n) {
list.remove(new Integer(n)); // 这地方不能直接用 n
}
}