利用Java怎么获取链表中的元素

发布时间:2021-02-22 16:06:49 作者:Leah
来源:亿速云 阅读:360

今天就跟大家聊聊有关利用Java怎么获取链表中的元素,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

Java可以用来干什么

Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企业级应用开发;6. Java大数据开发;7.游戏开发等。

一、获取元素

1.关于获取链表中元素的方法的分析

由于我们使用了虚拟头结点,而我们每次都需要从第一个真实节点开始,因此需要首先得到虚拟头结点的下一个节点是谁,然后在此基础上进行遍历工作,相关代码如下:

 //获取链表的第index(0-based)个位置的元素  (实际不常用,练习用)
  public E get(int index) {
    //合法性判断
    if (index < 0 || index >= size) {
      throw new IllegalArgumentException("Get failed,Illegal index");
    }

    Node<E> cur = dummyHead.next;
    for (int i = 0; i < index; i++) {
      cur = cur.next;
    }
    return cur.e;
  }

2.获得链表的第一个元素

对于该方法则是依靠在get()方法的。

 //获得链表的第一个元素
  public E getFirst() {
    return get(0);
  }

3.获得链表的最后一个元素

对于该方法页是依靠在get()方法的。

 //获得链表的最后一个元素
  public E getLast() {
    return get(size - 1);
  }

二、修改链表元素

由于我们使用了虚拟头结点,而我们每次都需要从第一个真实节点开始,因此需要首先得到虚拟头结点的下一个节点是谁,然后在此基础上进行遍历工作,相关代码如下:

  //修改链表的第index(0-based)个位置的元素  (实际不常用,练习用)
  public void set(int index, E e) {
    //合法性判断
    if (index < 0 || index >= size) {
      throw new IllegalArgumentException("update failed,Illegal index");
    }

    Node<E> cur = dummyHead.next;
    for (int i = 0; i < index; i++) {
      cur = cur.next;
    }
    cur.e = e;
  }

三、判断是否有元素e

由于我们使用了虚拟头结点,而我们每次都需要从第一个真实节点开始,因此需要首先得到虚拟头结点的下一个节点是谁,然后判断给定的元素值与链表中的元素值内容是否相等(equals()方法),若相等则返回true,否则返回false。

 //查找链表中是否有元素e
  public boolean contains(E e) {
    Node<E> cur = dummyHead.next;
    while (cur != null) {
      if (cur.e.equals(e)) {
        return true;
      }
      cur = cur.next;
    }
    return false;
  }

四、toString()方法的重写

为了在输出该链表对象时可以查看相关自定义的信息,我们对toString()进行重写改造。

//重写object类,便于测试
  @Override
  public String toString() {
    StringBuilder res = new StringBuilder();
    Node<E> cur = dummyHead.next;
    while (cur != null) {
      res.append(cur + "->");
      cur = cur.next;
    }

    res.append("NULL");

    return res.toString();
  }

此时该方法等同于

 //重写object类,便于测试
  @Override
  public String toString() {
    StringBuilder res = new StringBuilder();

    for (Node<E> cur = dummyHead.next; cur != null; cur = cur.next) {
      res.append(cur + "->");
    }
    res.append("NULL");

    return res.toString();
  }

五、测试

新建一个main函数,填写相关测试代码如下:

package LinkedList;

public class TestMain {
  public static void main(String[] args) {
    LinkedList<Integer> linkedList = new LinkedList<Integer>();

    System.out.println("============在链表头部添加============");
    for (int i = 0; i < 5; i++) {
      linkedList.addFirst(i);
      System.out.println(linkedList);
    }


    System.out.println("============修改链表============");
    linkedList.set(2,666);
    System.out.println(linkedList);
  }
}

结果为:

利用Java怎么获取链表中的元素

看完上述内容,你们对利用Java怎么获取链表中的元素有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

推荐阅读:
  1. 利用python怎么随机获取list中的元素
  2. 利用JavaScript怎么获取元素的位置

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:在Java中获取文件路径的方法有哪些

下一篇:如何在Javascript 中利用ajax和C#获取文件的大小

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》