java list contains方法复写
Java中的List是一个非常重要的数据结构,它是一个代表了某种时序关系的元素集合。在使用List进行一些数据操作时,为了判断一个元素是否在List中,我们很可能会用到contains()方法。而在一些特殊情况下,我们需要自己重写一个contains()方法来满足特定的需求。
在Java中,contains()方法是List中的一个方法,它的作用是判断某个元素是否在List中。该方法的通用语法为:
boolean contains(Object o)
其中,o为被检查的元素。如果存在这个元素,返回true,否则返回false。而如果我们需要在List中寻某个对象,我们就可以自己重写contains()方法。下面我们将分步骤来阐述重写contains()方法的过程。
1. 实现Iterable接口
首先,我们需要实现Iterable接口,以便使用foreach语句遍历容器当中的各个元素。
public class MyList<E> implements Iterable<E> {
//...
}
2. 实现Iterator
实现Iterator接口是为了能够使用Iterator迭代器。这里我们可以使用内部类来实现Iterator。
public class MyList<E> implements Iterable<E> {字段字符串去重复
// 内部类实现Iterator
private class MyIterator implements Iterator<E> {
int cursor; // 游标
boolean hasShownNext; // 确保next()只被调用一次
public MyIterator() {
cursor = 0;
hasShownNext = false;
}
@Override
public boolean hasNext() {
return cursor != size;
}
@Override
public E next() {
if (cursor >= size)
throw new NoSuchElementException();
hasShownNext = true;
return elements[cursor++];
}
@Override
public void remove() {
if (!hasShownNext)
throw new IllegalStateException();
ve(--cursor);
hasShownNext = false;
}
}
//...
}
3. 重写contains方法
现在我们已经实现了Iterable和Iterator接口,我们可以重写contains方法了。我们只需要利用迭代器来遍历List,到需要寻的元素即可。
public class MyList<E> implements Iterable<E> {
//...
@Override
public boolean contains(Object o) {
Iterator<E> it = iterator();
if (o == null) {
while (it.hasNext()) {
if (it.next() == null) {
return true;
}
}
} else {
while (it.hasNext()) {
if (o.())) {
return true;
}
}
}
return false;
}
// ...
}
总结:
通过上述的步骤,我们成功地实现了自定义List的contains()方法。这个方法可以帮助我们判断某个元素是否在List中。对于一些特定需求的List操作,我们可以重写这个方法来满足我们的需求。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论