Java基础入门笔记-链表与容器
生活随笔
收集整理的這篇文章主要介紹了
Java基础入门笔记-链表与容器
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
容器(Container):存儲對象的東西。
容器是一個設(shè)計(jì)上的術(shù)語,不是一個語法概念。
比如數(shù)組,就是一個容器
數(shù)組容器
缺點(diǎn):
1.容量固定,無法擴(kuò)展。既不能射太大,也不能太小,很難確定。
2.插入和刪除代價大。
鏈表可以完美解決。
鏈表(Linked List):一種組織數(shù)據(jù)的方式;
鏈表與容器:
嚴(yán)格來說,鏈表并不是容器,鏈表只是容器的一種實(shí)現(xiàn)方式;
1.插入鏈表
2.刪除鏈表
3.查找鏈表
LinkList.java package my;public class LinkList {private LinkNode head;private int NodeNum=0;private LinkNode q;public LinkList() {head=new LinkNode(0); //頭結(jié)點(diǎn)head.next=null;}public void insertNode(int position,LinkNode p) { //從下標(biāo)0開始插入if(position<0||position>NodeNum) {System.out.println("插入失敗,位置有問題");return;}q=head;for(int i=0;i<position;i++) {q=q.next;}p.next=q.next;q.next=p;NodeNum++;}public void deleteNode(int position) {if(position<0||position>NodeNum) {System.out.println("刪除失敗,位置有問題");return;}q=head;for(int i=0;i<position;i++)q=q.next;q.next=q.next.next;NodeNum--;}public void showList() {for(LinkNode p=head.next;p!=null;p=p.next)System.out.print(p.data+"->");System.out.print("null\n");}}
LinkNode.java package my;public class LinkNode {int data;LinkNode next;public LinkNode(int i) {data=i; } }
容器是一個設(shè)計(jì)上的術(shù)語,不是一個語法概念。
比如數(shù)組,就是一個容器
數(shù)組容器
缺點(diǎn):
1.容量固定,無法擴(kuò)展。既不能射太大,也不能太小,很難確定。
2.插入和刪除代價大。
鏈表可以完美解決。
鏈表(Linked List):一種組織數(shù)據(jù)的方式;
鏈表與容器:
嚴(yán)格來說,鏈表并不是容器,鏈表只是容器的一種實(shí)現(xiàn)方式;
1.插入鏈表
2.刪除鏈表
3.查找鏈表
把對象放入容器;
下面是Java單鏈表的代碼:
HelloWorld.java
package my;public class HelloWorld {public static void main(String[] args){ LinkList a=new LinkList();for(int i=0;i<10;i++) { //構(gòu)造一個鏈表LinkNode b=new LinkNode(i);a.insertNode(i, b);}System.out.print("初始化的鏈表:");a.showList();LinkNode b=new LinkNode(100);System.out.print("(從0開始數(shù))在第三個位置插入結(jié)點(diǎn):");a.insertNode(3, b); a.showList();System.out.print("(從0開始數(shù))刪除第三個位置的結(jié)點(diǎn):");a.deleteNode(3);a.showList();} }LinkList.java package my;public class LinkList {private LinkNode head;private int NodeNum=0;private LinkNode q;public LinkList() {head=new LinkNode(0); //頭結(jié)點(diǎn)head.next=null;}public void insertNode(int position,LinkNode p) { //從下標(biāo)0開始插入if(position<0||position>NodeNum) {System.out.println("插入失敗,位置有問題");return;}q=head;for(int i=0;i<position;i++) {q=q.next;}p.next=q.next;q.next=p;NodeNum++;}public void deleteNode(int position) {if(position<0||position>NodeNum) {System.out.println("刪除失敗,位置有問題");return;}q=head;for(int i=0;i<position;i++)q=q.next;q.next=q.next.next;NodeNum--;}public void showList() {for(LinkNode p=head.next;p!=null;p=p.next)System.out.print(p.data+"->");System.out.print("null\n");}}
LinkNode.java package my;public class LinkNode {int data;LinkNode next;public LinkNode(int i) {data=i; } }
總結(jié)
以上是生活随笔為你收集整理的Java基础入门笔记-链表与容器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: unef螺纹_硬料怎么车螺纹?一文了解螺
- 下一篇: Struts2 访问上下问对象