• 首页
  • 作文
  • 散文
  • 故事
  • 古诗
  • 短文
  • 语录
  • 写作
  • 诗歌
  • 百科
  • 知识
  • 首页
  • 作文
  • 散文
  • 故事
  • 古诗
  • 短文
  • 语录
  • 写作
  • 诗歌
  • 百科
  • 知识
首页 » 生活常识 » list重写一些方法需要重写哪些(写一个MyArrayList类,重写List中的方法)

list重写一些方法需要重写哪些(写一个MyArrayList类,重写List中的方法)

分类:生活常识 日期:2022-09-21 02:41 浏览:4 次

1.写一个MyArrayList类,重写List中的方法

import java.util.Arrays; public class ListOfMy{ private Object[] obj; private int num=0; public ListOfMy(){ obj=new Object[0]; } public int size(){ return num; } public boolean isEmpty() { if(obj==null || obj.length<1){ return true; } return false; } public boolean contains(Object element) { for(int i=0; i<obj.length; i++){ if(obj[i].equals(element)){ return true; } } return false; } public boolean add(Object element) { if(element!=null){ num++; obj=Arrays.copyOf(obj, num); obj[num-1]=element; return true; } return false; } public boolean remove(Object element){ boolean f=false; for(int i=0,j=0; i<obj.length; i++){ if(!obj[i].equals(element)){ obj[j++]=obj[i]; f=true; } } if(f){ obj=Arrays.copyOf(obj, --num); } return f; } public void clear() { obj=new Object[0]; num=0; } public Object get(int index)throws Exception{ if(indexnum){ throw new Exception("index无效"); } return obj[index]; } public int set(int index, Object element)throws Exception{ if(indexnum){ throw new Exception("index无效"); } obj[index]=element; return index; } public void insert(int index, Object element)throws Exception{ if(indexnum){ throw new Exception("index无效"); } num++; obj=Arrays.copyOf(obj, num); for(int i=0; iindex; i--){ obj[i]=obj[i-1]; } obj[index]=element; } public Object remove(int index)throws Exception{ if(indexnum){ throw new Exception("index无效"); } Object ob=null; for(int i=0, j=0;i<num;i++){ if(i!=index){ obj[j]=obj[i]; j++; }else{ ob=obj[i]; } } if(null!=ob){ obj=Arrays.copyOf(obj, --num); } return ob; } public int indexOf(Object element) { for(int i=0; i<obj.length; i++){ if(obj[i].equals(element)){ return i; } } return -1; } public String toString(){ StringBuilder sb=new StringBuilder("["); for(int i=0; i0)sb.append(","); sb.append(obj[i]); } sb.append("]"); return sb.toString(); } } 基本的,请参数,有不对的地方,请自己调试、修改。

2.java怎么重写arraylist的tostring方法

可以通过继承ArrayList,然后在派生类重写toString方法,例如:

import static java.lang.System.out;

public class Program {

public static void main(String[] args) throws Exception {

MyArrayList<String> myArrayList=new MyArrayList<String>(){{

add("test1");

add("test2");

}};

for(String item:myArrayList){

out.println(item);

}

out.println(myArrayList);// print This override toString method.

}

}

class MyArrayList<E> extends ArrayList<E>{

@Override

public String toString() {

return "This override toString method.";

//return super.toString();

}

}

3.java List怎么分组去重

使用set集合啊,set集合是不能放重复的数据的。

Set hashSet = new HashSet(list);然后在转过来就行了,set去除重复是调用了equals方法,所以你在Sh里面要重写equals方法,自定义比较的规则,例如:public boolean equals(Object obj) { if(obj==null) return false; if(obj==this) return true; Sh sh = (Sh)obj; if(sh.getHm()==this.getHm()){ return true; } return false; }。

4.java 集合中重写hashCode方法和重写equals方法什么关系

简单介绍Object中的equals()方法和HashCode()方法:java中的String,Integer这些类已经实现了equals和HashCode方法的重写,但是Object类中并没有重写

equals():

equals()方法,在这些类中equals()方法的实现是:

public boolean equals(Object obj){

return(this == obj);

}

HashCode()方法

比较的是两个对象的内存地址,在Object中的定义是:public native int hashCode();

说明他只是一个本地方法,要了解HashCode就要了解java中集合,一般来说分为两类,一类是List,一类是Set。前者元素有序可以重复,后者无需不能重复。在Set中有HashMap,HashSet这些方法就是保证元素的不重复性。

两者关系:

要判断两个对象是否相等,就要重写equals()方法,具体的实现网上很多。重写equals()方法一般都要重写HashCode()方法,这是为了提高存储效率,上面说的HashCode可以保证相同的元素存储于相同的地址,理论上可以没有,但是如果没有,使用效率会大大降低。比如说String实现HashCode之后,相同的对象对应的地址相同,然后在进行equals比较,里面对象都存储在堆中的String Pool里面。

希望对你有所帮助

5.Java中的重写是什么呢

例如

class A

{

public void overWrite()

{

System.out.print("A")

}

}

public class B extends A

{

public void overWrite()

{

System.out.print("B")

}

public static void main(String[] args)

{

A a=new B();

a.overWrite();

}

}

输出B,这就是重写,主要发生在之类重写父类的方法和属性.

6.关于java的容器类 list,map等的toString()方法

可能你是刚学习这门语言吧?其实很简单就可以知道答案了啊.设个断点,然后一步步F5(eclipse环境下)不就知道答案了吗?

当然我得承认我一开始想当然地认为在所有的集合类的总父接口里统一override了toString()方法.断点一看才知道不是这么回事,

事实上,是在这个类里实现的:

public abstract class AbstractCollection&lt;E&gt; implements Collection&lt;E&gt;

在其中有一个toString()的重写

public String toString() {

Iterator&lt;E&gt; i = iterator();

if (! i.hasNext())

return "[]";

StringBuilder sb = new StringBuilder();

sb.append('[');

for (;;) {

E e = i.next();

sb.append(e == this ? "(this Collection)" : e);

if (! i.hasNext())

return sb.append(']').toString();

sb.append(", ");

}

}

建议你自己随便新建一个list或者map什么的,用断点的方法去看看程序到底怎么走的.

list重写一些方法需要重写哪些

相关推荐:
  • 生蚝的眼睛长在哪里(生蚝的蚝眼在哪里)
  • 老酸奶温度过高储存还可以喝吗?
  • 帝都是哪里(武则天时期帝都是哪里)
  • 炸大虾怎么做好吃又简单(干炸大虾怎么做)
  • 九寨沟位于四川的什么位置?(九寨沟位于四川的哪个地理位置)
上一篇:关联词_词学习 下一篇:阳光生态校园作文400(阳光校园征文400字)

相关推荐

生蚝的眼睛长在哪里(生蚝的蚝眼在哪里)
老酸奶温度过高储存还可以喝吗?
帝都是哪里(武则天时期帝都是哪里)
炸大虾怎么做好吃又简单(干炸大虾怎么做)
九寨沟位于四川的什么位置?(九寨沟位于四川的哪个地理位置)
九寨沟位于四川的什么位置?(九寨沟位于四川的哪个地理位置)
dm是什么d单位?(dm是什么的缩写)
元旦的习俗是什么30字?(元旦风俗30字)
元旦的习俗是什么30字?(元旦风俗30字)
燕窝跟银耳功效一样吗(燕窝的功效跟银耳一样么)
潮流时尚 写作素材 创新创业
生活常识 策划方案 安全知识
自考专业 家居生活 三农创业
励志故事 时尚穿搭 星座知识
热门分类

声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
 蜀ICP备2020033479号-4  Copyright © 2016  学习鸟. 页面生成时间:2.570秒

返回顶部