实例详解ArrayLit中的contain方法

2025-06-16 19:30:01 10
  • 收藏
  • 管理
    ArrayList中的contains方法用于判断在ArrayList中是否包含目标元素。 (推荐教程:java入门教程) 原理: 调用indexOf(Object o)方法 复制publicboolean contains(Object o){return indexOf(o)>=0;} indexOf(Object o)方法中调用传入Object对象的equals方法进行比较 复制publicint indexOf(Object o){// 传入的Object是null, 则在集合中寻找为null的元素if(o ==null){for(int i =0; i < size; i )if(elementData[i]==null)return i;}else{// 如果不为null, 调用equals方法比较for(int i =0; i < size; i )if(o.equals(elementData[i]))return i;}// 不满足条件, 返回-1return-1;} 用法: 既然已经清楚了原理, 接下来要做的就是看一下常用类的equals方法 (学习视频推荐:java课程) String类 复制publicboolean equals(Object anObject){// 如果两个对象内存地址相同, 返回trueif(this== anObject){returntrue;}// 判断传入Object是String的情况if(anObject instanceofString){String anotherString =(String)anObject;int n = value.length;if(n == anotherString.value.length){char v1[]= value;char v2[]= anotherString.value;int i =0;// 比较String转化的char[]中的每一个char元素// 如果有一个不想等,则返回falsewhile(n--!=0){if(v1[i]!= v2[i])returnfalse; i ;}returntrue;}}returnfalse;} 所以说, 如果ArrayList集合中的元素类型是String, 直接使用contains方法是没问题的 Integer类 其他包装类型同它基本相同,都是比较的值, 因此也可以直接使用contains方法 复制publicboolean equals(Object obj){if(obj instanceofInteger){return value ==((Integer)obj).intValue();}returnfalse;} 其他引用类型 相信不说大家也知道了, 使用其他引用类型需要用到contains方法时,要重写equals方法呦!
    上一页:实战linux搭建FTP 下一页:实例讲解StringBuffer类的常用方法
    全部评论(0)