最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 8實現任意參數的單鏈表

 更新時間:2020年10月27日 17:11:49   作者:因吉  
這篇文章主要為大家詳細介紹了Java 8實現任意參數的單鏈表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Java 8實現任意參數的單鏈表,供大家參考,具體內容如下

1、實現功能

1)add():鏈表末尾添加元素;
2)pop():移除鏈表尾部元素;
3)insert():指定索引處添加元素;
4)delete():指定索引處刪除元素;
5)getSize():獲取鏈表當前長度;
6)display():展示鏈表當前元素。

2、代碼

package DataStructure;

/**
 * @author: Inki
 * @email: inki.yinji@qq.com
 * @create: 2020 1024
 * @last_modify: 2020 1025
 */

public class MySingleLinkedList <AnyType> {

 /**
 * Only used to store the head node.
 */
 private SingleNode<AnyType> head = new SingleNode(new Object());

 /**
 * The single linked list current size.
 */
 private int size = 0;

 /**
 * Add element to the end of the list.
 * @param:
 * paraVal: The given value.
 */
 public void add(AnyType paraVal) {
 insert(size, paraVal);
 }//Of add

 /**
 * Pop the last element.
 * @return:
 * The popped value.
 */
 public AnyType pop(){
 return delete(size - 1);
 }//Of pop

 /**
 * Insert element at specified index.
 * @param:
 * paraIdx: The given index.
 * paraVal: The given value.
 */
 public void insert(int paraIdx, AnyType paraVal) {

 if (paraIdx > size) {
  throw new IndexOutOfBoundsException("The index error.");
 }//Of if

 SingleNode <AnyType> tempNode = head;
 int i = 0;
 while (i++ < paraIdx) {
  tempNode = tempNode.next;
 }//Of while

 SingleNode<AnyType> paraNode = new SingleNode <>(paraVal);
 paraNode.next = tempNode.next;
 tempNode.next = paraNode;
 size++;
 }//of add

 /**
 * Delete the element at specified index.
 * @param:
 * paraIdx: The given index of element to delete.
 * @return:
 * The deleted value.
 */
 public AnyType delete(int paraIdx) {
 if (size == 0) {
  throw new RuntimeException("The single linked list is empty.");
 }//Of if

 if (size <= paraIdx) {
  throw new IndexOutOfBoundsException("The index error.");
 }//Of if

 SingleNode <AnyType> retNode = head;
 int i = 0;
 while (i++ < paraIdx) {
  retNode = retNode.next;
 }//Of while

 retNode.next = retNode.next.next;

 size--;
 return retNode.val;
 }//Of delete

 /**
 * Get the current size of the single linked list.
 * @return:
 * The current size of the single linked list.
 */
 public int getSize() {
 return size;
 }//Of getSize

 /**
 * Display the single linked list.
 */
 public void display() {
 if (size == 0) {
 throw new RuntimeException("The single linked list is empty.");
 }//Of if
 
 System.out.print("The single linked list is:\n[");
 SingleNode <AnyType> tempNode = head;
 int i = 0;
 while (i++ < size - 1) {
  tempNode = tempNode.next;
  System.out.printf("%s, ", tempNode.val);
 }//Of while
 System.out.printf("%s]\n", tempNode.next.val);
 }//Of display

 /**
 * The main function.
 */
 public static void main(String[] args) {
 MySingleLinkedList <Character> test = new MySingleLinkedList<>();
 test.add('a');
 test.add('b');
 test.insert(0, 'c');
 test.add('d');
 test.insert(0, '5');
 test.delete(4);
 test.pop();
 test.add('+');
 test.display();
 System.out.println(test.getSize());
 }//Of main

}//Of class MySingleLinkedList

class SingleNode <AnyType>{

 /**
 * The value.
 */
 AnyType val;

 /**
 * The next node.
 */
 SingleNode<AnyType> next;

 /**
 * The first constructor.
 * @param
 * paraVal: The given value.
 */
 SingleNode (AnyType paraVal) {
 val = paraVal;
 }//The first constructor

}//Of class SingleNode

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java利用Jackson序列化實現數據脫敏

    Java利用Jackson序列化實現數據脫敏

    這篇文章主要介紹了利用Jackson序列化實現數據脫敏,首先在需要進行脫敏的VO字段上面標注相關脫敏注解,具體實例代碼文中給大家介紹的非常詳細,需要的朋友可以參考下
    2021-10-10
  • Java @Transactional與synchronized使用的問題

    Java @Transactional與synchronized使用的問題

    這篇文章主要介紹了Java @Transactional與synchronized使用的問題,了解內部原理是為了幫助我們做擴展,同時也是驗證了一個人的學習能力,如果你想讓自己的職業(yè)道路更上一層樓,這些底層的東西你是必須要會的
    2023-01-01
  • 工作中禁止使用Executors快捷創(chuàng)建線程池原理詳解

    工作中禁止使用Executors快捷創(chuàng)建線程池原理詳解

    這篇文章主要為大家介紹了工作中禁止使用Executors快捷創(chuàng)建線程池原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Java 實現加密數據庫連接的步驟

    Java 實現加密數據庫連接的步驟

    這篇文章主要介紹了Java 實現加密數據庫連接的步驟,幫助大家更好的理解和使用Java處理數據庫,感興趣的朋友可以了解下
    2020-11-11
  • 利用maven命令指定配置文件打包springboot項目

    利用maven命令指定配置文件打包springboot項目

    這篇文章主要介紹了利用maven命令指定配置文件打包springboot項目,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • idea一招搞定同步所有配置(導入或導出所有配置)

    idea一招搞定同步所有配置(導入或導出所有配置)

    使用intellij idea很長一段時間,軟件相關的配置也都按照自己習慣的設置好,如果需要重裝軟件,還得需要重新設置,本文就詳細的介紹了idea 同步所有配置,感興趣的可以了解一下
    2021-07-07
  • 如何配置feign全局log

    如何配置feign全局log

    這篇文章主要介紹了如何配置feign全局log,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • IDEA高效使用設置指南

    IDEA高效使用設置指南

    本文主要為大家介紹了關于IDEA高效的設置指南,其中包含必備的一些插件推薦以及主題優(yōu)化還有IDEA源碼的閱讀技巧,干貨滿滿,有需要的朋友可以借鑒參考下
    2022-01-01
  • echarts圖表導出excel示例

    echarts圖表導出excel示例

    這篇文章主要介紹了echarts圖表導出excel示例,需要的朋友可以參考下
    2014-04-04
  • idea中springboot整合mybatis找不到mapper接口的原因分析

    idea中springboot整合mybatis找不到mapper接口的原因分析

    這篇文章主要介紹了idea中springboot整合mybatis找不到mapper接口的原因分析及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01

最新評論

资阳市| 琼海市| 通榆县| 思茅市| 沅江市| 永仁县| 乡城县| 綦江县| 钟山县| 定日县| 罗城| 航空| 富宁县| 广东省| 长丰县| 临邑县| 浦江县| 盐山县| 尼木县| 钟祥市| 莱芜市| 普陀区| 中卫市| 信宜市| 凤城市| 阿拉尔市| 鹤壁市| 庐江县| 铜山县| 涿州市| 绥阳县| 长汀县| 梁河县| 义乌市| 长寿区| 安国市| 济南市| 景宁| 应城市| 乳源| 郯城县|