1.13 设计一个泛型类Collection

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

import java.util.Arrays; /** * 可以用 * @author 疯狂龅牙酥 * */ public class One_thirteen {  public static void main(String[] args) {  // TODO Auto-generated method stub Object[] obj = new Object[] { "9"}; Collection<String> cool = new Collection<String>(obj); System.out.println(Arrays.toString(cool.getCollection())); System.out.println(cool.getSize()); System.out.println(cool.isEmpty()); System.out.println(cool.getSize()); cool.makeEmpty(); System.out.println(cool.isEmpty()); System.out.println(cool.getSize()); cool.insert("1"); cool.insert("2"); cool.insert("3"); System.out.println(Arrays.toString(cool.getCollection())); System.out.println(cool.getSize()); cool.remove(2); System.out.println(Arrays.toString(cool.getCollection())); System.out.println(cool.getSize()); System.out.println(cool.isPresent("3")); } } class Collection<Value> {  private Object[] arr; private int size = 0; // 0为空 public Collection(Object[] arr) {  this.size = arr.length; this.arr = arr; } public int getSize() {  return this.size; } public Object[] getCollection() {  return this.arr; } public boolean isEmpty() {  return this.size == 0; } public void makeEmpty() {  this.size = 0; // 这里应该把数组清空 this.arr = new Object[] { }; } public void insert(Value insertedValue) {  if (this.size > this.arr.length + 1) {  // 还能装 this.arr[this.size++] = insertedValue; } else {  // 装不下了,需要开辟空间 // 先开辟一块更大的,然后替换掉原来的,原来的系统会自动回收垃圾空间 Object[] tmp = new Object[this.size + 1]; System.arraycopy(this.arr, 0, tmp, 0, this.size++); tmp[this.size - 1] = insertedValue; this.arr = tmp; } } public void remove(int index) {  if(index < 0 || index > this.size-1) {  return; } if(index < this.size-1) {  for(int i=index; i<this.size-1; i++) {  this.arr[i] = this.arr[i+1]; } } Object[] tmp = new Object[this.size-1]; System.arraycopy(this.arr, 0, tmp, 0, index); System.arraycopy(this.arr, index+1, tmp, index, this.size-1-index); this.arr = tmp; this.size--; } public boolean isPresent(Value v) {  for(Object vi:this.arr) {  if(vi.equals(v)) {  return true; } } return false; } } 
全部评论

相关推荐

群星之怒:1.照片可以换更好一点的,可以适量P图,带一些发型,遮住额头,最好穿的正式一点,可以适当P图。2.内容太少。建议添加的:求职意向(随着投递岗位动态更改);项目经历(内容太少了建议添加一些说明,技术栈:用到了什么技术,还有你是怎么实现的,比如如何确保数据传输稳定的,角色注册用到了什么技术等等。)项目经历是大头,没有实习是硬伤,如果项目经理不突出的话基本很难过简历筛。3.有些内容不必要,比如自我评价,校内实践。如果实践和工作无关千万别写,不如多丰富丰富项目。4.排版建议:建议排版是先基础信息,然后教育背景(要突出和工作相关的课程),然后专业技能(一定要简短,不要长篇大论,写你会什么,会的程度就可以),然后是项目经历(一定要详细,占整个简历一定要超过一半,甚至超过百分之70都可以)。最后如果有一部分空白的话可以填补上校内获得的专业相关的奖项,没有就写点校园经历和自我评价。5.技术一定要够硬,禁得住拷打。还有作息尽量保证正常,不要太焦虑。我24双非本科还是非科班,秋招春招各找了一段实习结果都没有转正,当时都想噶了,最后6月份在校的尾巴也找到一份工作干到现在,找工作有时很看运气的不要急着自我否定。 加油
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务