`
nothing0318
  • 浏览: 5011 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

ArrayList的contains方法

阅读更多
今天在用ArrayList类的caontains方法是遇到了问题,我写了一个存放User类的ArrayList  但在调用list.contains(user)时总是返回false。 去看了下ArrayList的源码,源码如下:
public boolean contains(Object o) {
	return indexOf(o) >= 0;
    }


 public int indexOf(Object o) {
	if (o == null) {
	    for (int i = 0; i < size; i++)
		if (elementData[i]==null)
		    return i;
	} else {
	    for (int i = 0; i < size; i++)
		if (o.equals(elementData[i]))
		    return i;
	}
	return -1;
    }


发现在contains方法会调用 o.equals(elementData[i])方法,其中elementData[i]是个object类的实例。也就是说我在调用list.contains(user)时实际上比较的是user.equals(object) 这当然会返回false。

正确的方法,在User类中改写equals方法。 改写的代码如下:

public boolean equals(Object obj) {
		if (obj instanceof User) {
			User u = (User) obj;
			return this.username.equals(u.username)
					&& this.password.equals(password);
		}
		return super.equals(obj);
分享到:
评论

相关推荐

    Java中ArrayList的removeAll方法详解

    ArrayList的removeAll方法的实现机制是通过循环遍历ArrayList中的每个元素,然后使用contains方法判断该元素是否在另外一个集合中,如果在,则删除该元素。这种实现机制的问题是,它需要两层循环,时间复杂度为O(m*n...

    arraylist使用方法

    本篇将详细介绍ArrayList的使用方法,并结合给定的代码示例来解释如何在实际项目中应用。 首先,ArrayList的主要特点包括: 1. 动态性:ArrayList的大小不是固定的,可以随着添加或移除元素自动增长或缩小。 2. ...

    JavaScript 实现基础 ArrayList 功能

    为了提供更丰富的功能,还可以实现更多的方法,如清空ArrayList的`clear`方法、检查是否包含特定值的`contains`方法、合并两个ArrayList的`concat`方法等。 ```javascript ArrayList.prototype.clear = function() ...

    Android ArrayList关键字查询.rar

    这个方法可以使用`contains()`或`indexOf()`等字符串方法来检查关键字是否存在。例如: ```java public ArrayList&lt;MyObject&gt; searchByKeyWord(ArrayList&lt;MyObject&gt; dataList, String keyword) { ArrayList...

    Java基础-ArrayList方法全解(上).pdf

    - contains(Object o): 检查ArrayList是否包含指定的元素。 - size(): 返回ArrayList中的元素数量。 5. 查找和排序 - indexOf(Object o): 返回指定元素的第一个出现的索引,如果不存在则返回-1。 - lastIndexOf...

    你必须知道的C# ArrayList

    2. **ArrayList的主要方法** - `Add(object item)`: 向ArrayList末尾添加一个元素。 - `Insert(int index, object item)`: 在指定索引处插入一个元素。 - `Remove(object item)`: 删除第一个匹配给定值的元素。 ...

    ArrayList关键字查询demo

    这通常通过使用`contains()`方法或者自定义的比较逻辑实现。这里我们使用自定义的比较方法来展示如何实现: ```java public boolean containsKeyword(String keyword) { for (String item : dataList) { if (item...

    ArrayList深度剖析与简单实用

    ArrayList的核心概念基于数组,但比数组更加灵活,因为它支持动态增长和缩小,同时也提供了丰富的操作方法。 1. **ArrayList的定义与使用** ArrayList是一种基于数组的列表,它允许我们在不预先知道确切大小的情况...

    Arraylist例子代码 java

    使用`contains()`方法可以判断ArrayList是否包含特定元素。 ```java boolean hasElement = list.contains("NewElement"); // 如果包含"NewElement"返回true ``` 7. **遍历ArrayList** 可以通过增强for循环...

    ArrayList集合工具类

    这可能包括了ArrayList的实现、相关的操作方法以及可能的优化措施。通过查看源代码,我们可以学习到如何在JavaScript环境中模拟ArrayList的行为,以及如何处理与Java中的ArrayList不同的问题,如线程安全和动态扩容...

    ArrayList演示

    除了基本操作,ArrayList还提供了一些其他功能,如`indexOf()`(查找元素的索引)、`contains()`(判断是否包含特定元素)、`clear()`(清空列表)等。在实际开发中,根据需求选择合适的方法使用ArrayList,可以提高...

    C#ArrayList用法

    需要注意的是,尽管使用此方法创建的`ArrayList`是线程安全的,但在进行枚举时仍然需要显式锁定`SyncRoot`属性以避免异常。 ##### 3. Count 和 Capacity 属性 - **Count**: 表示当前`ArrayList`中元素的数量,只读...

    c# 数组与集合(ArrayList)游戏开发高级使用举例

    ArrayList的Add方法可以轻松添加元素,Clear方法可以快速清空所有元素,IndexOf方法可以查找特定元素的索引,Contains方法用于检查元素是否存在,Remove方法和RemoveAt方法则用于删除指定元素。此外,ArrayList还...

    C#检查指定对象是否存在于ArrayList集合中的方法

    本篇文章将详细讲解如何使用C#的ArrayList类的Contains方法来检查指定对象是否存在于ArrayList集合中。 首先,创建一个ArrayList实例是必要的。例如: ```csharp ArrayList alcollect = new ArrayList(); ``` 然后...

    ArrayList数据批量添加数据

    它提供了一系列的方法来添加、删除和检索元素,如`Add()`、`Remove()`、`Contains()`等。 #### 二、批量添加数据到ArrayList 在实际应用中,经常需要将大量的数据一次性添加到`ArrayList`中。例如,在处理数据库...

    学生管理系统(使用ArrayList)

    8. `contains(Object o)`: 检查ArrayList是否包含特定对象。 9. `addAll(Collection&lt;? extends E&gt; c)`: 将指定集合中的所有元素添加到ArrayList的末尾。 在管理系统中,可能会有以下功能: 1. 添加学生:调用...

    c# ArrayList的使用方法小总结

    - `Contains`方法检查ArrayList是否包含特定的元素。 - `IndexOf`和`LastIndexOf`方法分别返回元素的第一个和最后一个出现的索引。 - `CopyTo`方法将ArrayList复制到一个数组中。 - `TrimToSize`方法将`Capacity...

    java中申请不定长度数组ArrayList的方法

    此外,ArrayList 还提供了许多其他有用的方法,例如,list.clear() 方法用来清空 ArrayList,list.contains(E e) 方法用来判断 ArrayList 中是否包含某个元素,list.isEmpty() 方法用来判断 ArrayList 是否为空等等...

    java中数组列表ArrayList的使用.doc

    Java 中数组列表 ArrayList 的使用 ArrayList 是 Java 中的一种...此外,ArrayList 还有很多其他的方法和属性,例如 Clear、Contains、IndexOf 等,大家可以查看 MSDN,了解更多关于 ArrayList 的使用方法和技巧。

    ArrayList源码.zip

    此外,ArrayList还提供了一些其他功能,如确保容量的方法`ensureCapacity(int minCapacity)`,以及检查是否包含特定元素的`contains(Object o)`方法。这些方法都在源码中有着详细的实现逻辑。 通过深入学习...

Global site tag (gtag.js) - Google Analytics