Java 链表find()方法。如何
好的,我有一个链表(不是集合),我创建了一个新方法来查找链表中的对象。比如说:Java 链表find()方法。如何,java,Java,好的,我有一个链表(不是集合),我创建了一个新方法来查找链表中的对象。比如说: public Object find(Linked obj) { Linked newObj = firstLink; while(newObj != null) { if(newObj == obj) { return obj; } else {
public Object find(Linked obj) {
Linked newObj = firstLink;
while(newObj != null) {
if(newObj == obj) {
return obj;
}
else {
newObj = newObj.next;
}
}
顺便说一句,我有两个类:Linked
和Linkedlist
。在第一个函数中,我引用了下一个节点和显示函数。主要操作是在Linkedlist中,我有所有方法,如insert、display和firstLink
引用(我列表中最后插入的节点)(我的find()方法也在这个类中)。因此,在我的主要职能中,我是这样做的:
Linkedlist obj = new Linkedlist();
obj.insert("Auto");
Linkedlist obj2 = new Linkedlist();
obj2.insert("Moto");
我如何调用我的方法find()
来检查我的Linkedlist
是否有(例如)obj2
?- 要将LinkedList中的单个对象与另一个对象进行比较,请执行以下操作:
为链接的
实现方法
。在此方法中,检查两个对象(迭代中的当前对象和要查找的对象)中包含的字符串是否相同。为此,您应该使用equals()
方法String.equals(stringother)
- 要比较两个LinkedList,请编写另一个
方法。这一次是针对equals()
。在此方法中,您应该比较两个列表中的元素数。如果列表包含相同数量的元素,则可以使用先前定义的LinkedList
逐项比较列表Linked.equals()
- 这样想:
您有一个链接类(这是一个链接列表节点,每个节点都应该有下一个指针和节点内的元素)。所以这个类应该有构造函数、setter和getter方法
另一方面,Linkedlist类是管理链接对象(即管理链接列表节点)的主类。在这个类中,应该有对根节点(插入的第一个节点)的引用。因此,在程序中,应该只有一个/多个链接对象和Linkedlist作为主类
Linked root = new Linked("Auto",null); //here Linked constructor takes 2 parameters, the element and the next pointer.
//Since you only inserted one element so far, the next element should be null.
//Insert another element
insertAtEnd("Moto");
public void insertAtEnd(String element){
Linked curr = root;
while(curr.next != null) curr = curr.next;
curr.setNext(new Linked(element,null);
}
public Linked findElement(String element){
Linked curr = root;
while(curr!=null){
if(curr.getElement().equals(element)) return curr;
else curr = curr.next;
}
return null; //element not found
}
使用newObj.equals(obj)(在链接类中重写它之后)并注意obj2是一个Linkedlist,而不是一个要查找的对象。是的,在我发布帖子5分钟后,我想到了equals()。顺便说一下,谢谢你。它起作用了!我接受你的代码if语句。这是一种比较它的简单方法,因为如果只有一个变量,那么比较两个对象是没有意义的。所以用你的方法,我不需要重写我的equals()和hashCode()。谢谢@没问题!很高兴它有所帮助:)