日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA复习5(总结+循环链表)

發布時間:2023/12/19 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA复习5(总结+循环链表) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

泛型的定義: 在類定義的時候給定一個類型

?

Public class Point<T>?? 給定一個不確定的類型,當類實例化的時候或者使用的時候給定一個確定的類型,則別的數據類型就不能使用了

?

Point<String> p=new Point(); 說明這個類 現在只能存放String

Point<Integer> p=new Point(); 只能存放Integer

泛型的類型不能是基本數據類型

?

?

?

集合:

?

為了解決數據存儲的問題,JDK完成的一套數據結構,在開發中肯定會使用數組,但是數組長度是個問題 一旦聲明長度不可改變

?

?

集合就是一套動態對象數組? public final Object[] value;

?

?

順序集合:

?

??????????????????????????? Collection 最大的父接口

?

?List?? 特點: 有序 可重復????????? 本身也是接口???????????????????? Set? 不可重復

?

?

使用以上接口,則必須實例化該接口的實現類:

?

List :? ArryList?? Vector?? LinkedList??

?

ArrayList? Vector 的區別?

?

ArrayList 異步處理 ,非線程安全? 效率高? 新的類

?

Vector?? 同步處理, 線程安全??? 效率低? 老的類

?

LinkedList 特點: 實現的方式是基于鏈表,在進行數據插入 和刪除的時候很方便, 但是查詢效率不高?

?

ArrayList 特點: 基于數組開發的,在進行數據插入的時候由于在中間部分 效率很低(要移動數據) 但是查詢效率很高

?

?

Set:? TreeSet?? HashSet

?

TreeSet? 有序的? 不可重復的集合

?

通過 comparable接口中的 comparTo()方法完成的排序,該方法返回 3個值 1 -1?? 0?

?

?

HashSet 無序的 不可重復的集合

?

通過哈希表完成的數據存儲,每個對象都會生成一個HashCode 對應哈希表中索引,根據Hashcode隨機分配

?

根據對象中equals方法來判斷集合中的內容是否重復

?

注意: 使用自定義類型的時候,一般來說要實現 Comparble接口,hashCode 和equals方法

?

?

循環鏈表:

?

Node1 node2 node3--->? node1

?

擊鼓傳花

package org.node;

?

public class Game {

?

???? //實例化鏈表存儲游戲的人數

????

???? LinkList?? list=new LinkList();

????

????

???? int num; //總人數

????

???? int key; // 數到幾退出

????

????

???? // 初始化游戲的方法

????

???? public Game(int num,int key) {

?????????

????????? this.num=num;

?????????

????????? this.key=key;

???? }

????

????

???? public void play()throws Exception{

?????????

?????????

????????? for(int i=0;i<num;i++) {? //把游戲人數增加到鏈表中

??????????????

?????????????? list.add(i, i);

????????? }

?????????

????????? System.out.println("-----------游戲開始之前------------------");

?????????

????????? for(int i=0;i<list.size;i++) {

??????????????

?????????????? System.out.print(list.get(i));

????????? }

?????????

????????? System.out.println("------------------游戲開始------------------------");

?????????

????????? int jCount=num; //開始人數 等于總人數

?????????

????????? int j=0; //累加器

?????????

????????? Node node=list.head; //把一個頭節點賦值給一個節點

????????? while(jCount!=1) {

??????????????

????????? ???? if(node.getElement()!=null&&Integer.parseInt(node.getElement().toString())!=-1) {

???????????????????

??????????????????? j++;

???????????????????

??????????????????? if(j%key==0) {

????????????????????????

???????????????????????? node.setElement(-1);

???????????????????????? jCount--;

???????????????????????? System.out.println();

???????????????????????? for(int i=0;i<list.size;i++) {

?????????????????????????????

????????????????????????????? System.out.print(list.get(i)+" ");

???????????????????????? }

??????????????????? }

?????????????? }

?????????????? node=node.next;

????????? }

?????????

????????? System.out.println("---------游戲結束了------------------------");

?????????

????????? for(int i=0;i<list.size;i++) {

??????????????

?????????????? System.out.print(list.get(i)+" ");

????????? }

???? }

????

???? public static void main(String[] args) throws Exception {

?????????

????????? Game g=new Game(10, 3);

?????????

????????? g.play();

???? }

}

?

?

總結

以上是生活随笔為你收集整理的JAVA复习5(总结+循环链表)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。