美文网首页
设计一个泛型类Collection

设计一个泛型类Collection

作者: TomRidder | 来源:发表于2021-10-05 16:17 被阅读0次

设计一个泛型类Collection,它存储object对象的集合(在数组中),以及该集合当前的大小。提供public方法isEmtpy,makeEmpty,insert,remove,isPresent.方法isPresent(x)当且仅当在集合中存在(由equals定义) 等于x的一个object时返回true

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Collection<AnyType> {
    private Object[] data;

    private int size;

    public Object[] getData() {
        return data;
    }

    public void setData(Object[] data) {
        this.data = data;
    }

    public boolean isEmpty() {
        return data.length==0;
    }

    public void makeEmpty() {
        data = new Object[]{};
    }

    public void insert(AnyType obj) {
        Object[] temp = new Object[data.length+1];
        System.arraycopy(data,0,temp,0,data.length);
        temp[data.length] = obj;
        data = temp;
    }

    public void remove(int index) {
        if (index<0) {
            return;
        }
        Object[] temp = new Object[data.length-1];
        System.arraycopy(data,0,temp,0,index);
        System.arraycopy(data,index+1,temp,index,data.length-index-1);
        data = temp;
    }

    public void remove(AnyType obj) {
        if (data == null || obj == null) {
            return;
        }
        Object[] temp = new Object[data.length-1];
        for (int i=0;i< data.length;i++) {
            if(data[i]==obj){
                System.arraycopy(data,0,temp,0,i);
                System.arraycopy(data,i+1,temp,i,data.length-i-1);
                data=temp;
            }
        }
    }

    public boolean isPresent(AnyType x) {
        for(int i = 0; i< data.length; i++) {
            return data[i].equals(x);
        }
        return false;
    }

    public static void main(String[] args) {
        int i =0;
        Collection<String> collectionTest = new Collection<>();
        Object[] objects =new Object[]{"9"};
        collectionTest.setData(objects);
        collectionTest.insert("1");
        collectionTest.insert("2");
        collectionTest.insert("3");
        System.err.println(Arrays.toString(collectionTest.getData()));
        collectionTest.remove(0);
        System.err.println(Arrays.toString(collectionTest.getData()));
        collectionTest.remove("2");
        System.err.println(Arrays.toString(collectionTest.getData()));
        boolean flag = collectionTest.isEmpty();
        System.err.println("isEmpty: "+flag);
        boolean flag1 = collectionTest.isPresent("1");
        System.err.println("isPresent: "+flag1);
        collectionTest.makeEmpty();
        boolean flag2 = collectionTest.isEmpty();
        System.err.println("isEmpty: "+flag2);
    }
}

image.png

相关文章

  • 设计一个泛型类Collection

    设计一个泛型类Collection,它存储object对象的集合(在数组中),以及该集合当前的大小。提供publi...

  • 开发技能

    开发技能 Java 基础泛型Collection类IO类Thread 线程类 设计模式(常用即可) 第三方库下拉刷...

  • Collection、泛型

    【Collection、泛型】 主要内容 Collection集合 迭代器 增强for 泛型 Collection...

  • Collection接口&List接口简介

    Collection接口: List接口及其实现类--------ArrayList 泛型:

  • Java基础(8)——泛型

    本节内容1.泛型使用2.泛型实战 一、泛型使用1.泛型一般应用于Collection和Map2.使用场景:在定义类...

  • 2019-01-01

    Day10 Collection、泛型类,及其扑克牌案例 1.Collection集合 1.1 集合的概述 集合...

  • 2018-12-21

    Day10 Collection、泛型类 1.Collection集合 1.1 集合的概述 集合是java中提供的...

  • 集合Collection学习

    学习目标 能够说出集合与数组的区别 Collection类及其子类 Iterator原理及使用 什么是泛型,泛型得...

  • Java-泛型

    day02【Collection、泛型】 主要内容 Collection集合 迭代器 增强for 泛型 教学目标 ...

  • 2019-10-30

    day02【Collection、泛型】 主要内容 Collection集合 迭代器 增强for 泛型 教学目标 ...

网友评论

      本文标题:设计一个泛型类Collection

      本文链接:https://www.haomeiwen.com/subject/ajsgnltx.html