1、判断两个这个类对象s1,s2是否相等。2、输出两个集合对象的交集。3、输出两个集合对象的并集。4、将一个整型数据插入到一个集合对象中。
5、从一个集合中删除某一个元素。

解决方案 »

  1.   

    对啊,我刚初学java,但是这个题,感觉与老师上课的题型不一样,我又没这方面的资料可写啊!~~所以......哎,想请教啊!能给个思路吗?啊??
      

  2.   

    public class IntegerTester {
        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 + ")";
        }
    }粗略写了一下,交集和并集没有写喔,自己补充完成吧
      

  3.   

    看jdk源代码,参考一下Set和List的实现类
      

  4.   

    上次回答过了,那娘们竟然无满意结贴程序是没话说,楼主给点分吧。public class IntegerSet {    private ArrayList<Integer> list = new ArrayList<Integer>();    private static final int CAPACITY = 10; // 最大容量    /**
         * 测试 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
        }
    }
      

  5.   

    我觉得这种题就不要用到Java里面的数据结构吧,不然没什么意思
      

  6.   

    和我想的一样,不过可以抄袭一下Set和List源代码