中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

深圳定制網(wǎng)站制作費(fèi)用百度智能建站系統(tǒng)

深圳定制網(wǎng)站制作費(fèi)用,百度智能建站系統(tǒng),網(wǎng)站建設(shè)電話銷售話術(shù)模板大全,一個(gè)網(wǎng)頁(yè)的制作? 作者:小胡_不糊涂 🌱 作者主頁(yè):小胡_不糊涂的個(gè)人主頁(yè) 📀 收錄專欄:淺談Java 💖 持續(xù)更文,關(guān)注博主少走彎路,謝謝大家支持 💖 線性表與順序表 1. 線性表2. 順序表2.1 …

? 作者:小胡_不糊涂
🌱 作者主頁(yè):小胡_不糊涂的個(gè)人主頁(yè)
📀 收錄專欄:淺談Java
💖 持續(xù)更文,關(guān)注博主少走彎路,謝謝大家支持 💖

線性表與順序表

  • 1. 線性表
  • 2. 順序表
    • 2.1 接口的實(shí)現(xiàn)
  • 3. ArrayList簡(jiǎn)介
  • 4. ArrayList使用
    • 4.1 ArrayList構(gòu)造
    • 4.2 ArrayList常見操作
    • 4.3 ArrayList的遍歷

在這里插入圖片描述

1. 線性表

線性表(linear list) 是n個(gè)具有相同特性的數(shù)據(jù)元素的有限序列。 它是一種在實(shí)際中廣泛使用的數(shù)據(jù)結(jié)構(gòu),常見的線性表:順序表、鏈表、棧、隊(duì)列…

線性表在邏輯上是線性結(jié)構(gòu),也就說是連續(xù)的一條直線。但是在物理結(jié)構(gòu)上并不一定是連續(xù)的,線性表在物理上存儲(chǔ)時(shí),通常以數(shù)組和鏈?zhǔn)浇Y(jié)構(gòu)的形式存儲(chǔ)。

在這里插入圖片描述

2. 順序表

順序表 是用一段物理地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)數(shù)據(jù)元素的線性結(jié)構(gòu),一般情況下采用數(shù)組存儲(chǔ)。在數(shù)組上完成數(shù)據(jù)的增刪查改。

2.1 接口的實(shí)現(xiàn)

實(shí)現(xiàn)順序表的插入、刪除、修改、查找工作:

import java.util.Arrays;
public class MyArrayList {public int[] elem ;//定義一個(gè)數(shù)組public int usedSize;//0,用來記錄元素個(gè)數(shù)//順序表的 默認(rèn)大小public static final int DEFAULT_SIZE = 10;public MyArrayList() {this.elem = new int[DEFAULT_SIZE];}public MyArrayList(int capacity) {this.elem = new int[capacity];}//順序表尾部插入元素public void add(int data) {checkCapacity();this.elem[this.usedSize] = data;this.usedSize++;}//判斷順序表是否為空public boolean isFull() {/*if(usedSize == elem.length) {return true;}return false;*/return usedSize == elem.length;}//指定pos位置添加元素datapublic void add(int pos, int data) {try {checkPosOnAdd(pos);}catch (PosIllegality e) {e.printStackTrace();}checkCapacity();//1、從最后一個(gè)有效的數(shù)據(jù)開始往后移動(dòng) //2、當(dāng)i < pos 就結(jié)束for (int i = usedSize-1; i >= pos; i--) {elem[i+1] = elem[i];}//3、存放元素到pos 位置elem[pos] = data;//4、usedSize++;usedSize++;}//檢查插入位置pos的合法性private void checkPosOnAdd(int pos) throws PosIllegality{if(pos < 0 || pos > usedSize) {System.out.println("不符合法!");throw new PosIllegality("插入元素下標(biāo)異常: "+pos);}}private void checkCapacity() {if(isFull()) {//擴(kuò)容elem = Arrays.copyOf(elem,elem.length*2);}}//判定是否包含某一元素public boolean contains(int toFind) {if(isEmpty()) {return false;}for (int i = 0; i < usedSize; i++) {//如果是查找引用數(shù)據(jù)類型 一定記住 重寫方法if(elem[i] == toFind) {return true;}}return false;}//判斷線性表是否為空public boolean isEmpty() {return usedSize == 0;}//查找某個(gè)元素對(duì)應(yīng)位置public int indexOf(int toFind) {if(isEmpty()) {return -1;}for (int i = 0; i < usedSize; i++) {//如果是查找引用數(shù)據(jù)類型 一定記住 重寫方法if(elem[i] == toFind) {return i;}}return -1;}//獲取pos位置元素public int get(int pos) throws MyArrayListEmpty{checkPosOnGetAndSet(pos);if(isEmpty()) {throw new MyArrayListEmpty("獲取指定下標(biāo)元素時(shí)" +"順序表為空!");}return elem[pos];}private void checkPosOnGetAndSet(int pos) throws PosIllegality{if(pos < 0 || pos >= usedSize) {System.out.println("不符合法!");throw new PosIllegality("獲取指定下標(biāo)的元素異常: "+pos);}}//給pos位置設(shè)為元素valuepublic void set(int pos, int value) {checkPosOnGetAndSet(pos);elem[pos] = value;}//刪除第一次出現(xiàn)的這個(gè)數(shù)字public void remove(int toRemove) {int index = indexOf(toRemove);//獲取元素下標(biāo)if(index == -1) {System.out.println("沒有這個(gè)數(shù)字!");return;}for(int i = index; i < usedSize-1;i++) {elem[i] = elem[i+1];}usedSize--;}//獲取順序表長(zhǎng)度public int size() {return this.usedSize;}//清空順序表public void clear() {this.usedSize = 0;}//打印順序表中元素public void display() {for (int i = 0; i < this.usedSize; i++) {System.out.print(this.elem[i]+" ");}System.out.println();}}

測(cè)試類:

public class TestMAL{public static void main(String[] arg) {MyArrayList arr = new MyArrayList();arr.add(1);arr.add(2);arr.add(3);arr.add(4);arr.add(5);arr.display();System.out.println("-------");arr.add(1);arr.display();System.out.println("-------");arr.add(6,2);arr.display();System.out.println("-------");System.out.println(arr.indexOf(3));arr.display();System.out.println("-------");arr.get(9);}
}

3. ArrayList簡(jiǎn)介

在集合框架中,ArrayList是一個(gè)普通的類,實(shí)現(xiàn)了List接口,具體框架圖如下:

在這里插入圖片描述

【說明】

  1. ArrayList是以泛型方式實(shí)現(xiàn)的,使用時(shí)必須要先實(shí)例化
  2. ArrayList實(shí)現(xiàn)了RandomAccess接口,表明ArrayList支持隨機(jī)訪問
  3. ArrayList實(shí)現(xiàn)了Cloneable接口,表明ArrayList是可以clone的
  4. ArrayList實(shí)現(xiàn)了Serializable接口,表明ArrayList是支持序列化的
  5. 和Vector不同,ArrayList不是線程安全的,在單線程下可以使用,在多線程中可以選擇Vector或者CopyOnWriteArrayList
  6. ArrayList底層是一段連續(xù)的空間,并且可以動(dòng)態(tài)擴(kuò)容,是一個(gè)動(dòng)態(tài)類型的順序表

4. ArrayList使用

4.1 ArrayList構(gòu)造

方法解釋
ArrayList()無參構(gòu)造
ArrayList(Collection<? extends E> c)利用其他 Collection 構(gòu)建 ArrayList
ArrayList(int initialCapacity)指定順序表初始容量

ArrayList的創(chuàng)建:

public static void main(String[] arg){// ArrayList創(chuàng)建,推薦寫法// 構(gòu)造一個(gè)空的列表List<Integer> list1 = new ArrayList<>();// 構(gòu)造一個(gè)具有10個(gè)容量的列表List<Integer> list2 = new ArrayList<>(10);list2.add(1);list2.add(2);list2.add(3);// list2.add("hello"); // 編譯失敗,List<Integer>已經(jīng)限定了,list2中只能存儲(chǔ)整形元素// list3構(gòu)造好之后,與list中的元素一致ArrayList<Integer> list3 = new ArrayList<>(list2);// 避免省略類型,否則:任意類型的元素都可以存放,使用時(shí)將是一場(chǎng)災(zāi)難List list4 = new ArrayList();list4.add("111");list4.add(100);System.out.println(list4);//[111,100]}

4.2 ArrayList常見操作

方法解釋
boolean add(E e)尾插 e
void add(int index, E element)將 e 插入到 index 位置
boolean addAll(Collection<? extends E> c)尾插 c 中的元素
E remove(int index)刪除 index 位置元素
boolean remove(Object o)刪除遇到的第一個(gè) o
E get(int index)獲取下標(biāo) index 位置元素
E set(int index, E element)將下標(biāo) index 位置元素設(shè)置為 element
void clear()清空
boolean contains(Object o)判斷 o 是否在線性表中
int indexOf(Object o)返回第一個(gè) o 所在下標(biāo)
int lastIndexOf(Object o)返回最后一個(gè) o 的下標(biāo)
List subList(int fromIndex, int toIndex)截取部分 list

ArrayList操作方法的使用:

 public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("JavaSE");list.add("JavaWeb");list.add("JavaEE");list.add("JVM");list.add("測(cè)試課程");System.out.println(list);
// 獲取list中有效元素個(gè)數(shù)System.out.println(list.size());
// 獲取和設(shè)置index位置上的元素,注意index必須介于[0, size)間System.out.println(list.get(1));list.set(1, "JavaWEB");System.out.println(list.get(1));
// 在list的index位置插入指定元素,index及后續(xù)的元素統(tǒng)一往后搬移一個(gè)位置list.add(1, "Java數(shù)據(jù)結(jié)構(gòu)");System.out.println(list);
// 刪除指定元素,找到了就刪除,該元素之后的元素統(tǒng)一往前搬移一個(gè)位置list.remove("JVM");System.out.println(list);
// 刪除list中index位置上的元素,注意index不要超過list中有效元素個(gè)數(shù),否則會(huì)拋出下標(biāo)越界異常list.remove(list.size()-1);System.out.println(list);// 檢測(cè)list中是否包含指定元素,包含返回true,否則返回falseif(list.contains("測(cè)試課程")){list.add("測(cè)試課程");}
// 查找指定元素第一次出現(xiàn)的位置:indexOf從前往后找,lastIndexOf從后往前找list.add("JavaSE");System.out.println(list.indexOf("JavaSE"));System.out.println(list.lastIndexOf("JavaSE"));
// 使用list中[0, 4)之間的元素構(gòu)成一個(gè)新的SubList返回,但是和ArrayList共用一個(gè)elementData數(shù)組List<String> ret = list.subList(0, 4);System.out.println(ret);list.clear();System.out.println(list.size());}

4.3 ArrayList的遍歷

ArrayList 可以使用三方方式遍歷:for循環(huán)+下標(biāo)、foreach、使用迭代器

public static void main(String[] args) {List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);// 使用下標(biāo)+for遍歷for (int i = 0; i < list.size(); i++) {System.out.print(list.get(i) + " ");}System.out.println();// 借助foreach遍歷for (Integer integer : list) {System.out.print(integer + " ");}System.out.println();//使用迭代器Iterator<Integer> it = list.listIterator();while(it.hasNext()){System.out.print(it.next() + " ");}System.out.println();}
http://www.risenshineclean.com/news/29748.html

相關(guān)文章:

  • 網(wǎng)站開發(fā)技術(shù)實(shí)驗(yàn)教程seo推廣優(yōu)化的方法
  • 漢中門戶網(wǎng)工程招標(biāo)杭州seo網(wǎng)站哪家好
  • 高端網(wǎng)站建設(shè)費(fèi)用深圳網(wǎng)絡(luò)推廣公司哪家好
  • 個(gè)人接做網(wǎng)站多少錢app優(yōu)化方案
  • 汕頭有建網(wǎng)站公司嗎seo案例
  • 公司和網(wǎng)站備案查詢密碼網(wǎng)絡(luò)營(yíng)銷和傳統(tǒng)營(yíng)銷的區(qū)別有哪些
  • 宣傳片視頻西安seo排名
  • wordpress采集網(wǎng)頁(yè)文章安卓?jī)?yōu)化大師app下載
  • 工作總結(jié)ppt模板免費(fèi)寧波優(yōu)化推廣選哪家
  • 桂林做網(wǎng)站的公司seo是哪里
  • 購(gòu)物網(wǎng)站開發(fā)技術(shù)河北網(wǎng)站優(yōu)化公司
  • 網(wǎng)站風(fēng)格類型百度流量統(tǒng)計(jì)
  • 為什么做電子商務(wù)網(wǎng)站的原因中國(guó)建設(shè)網(wǎng)官方網(wǎng)站
  • 制作一個(gè)買股票的網(wǎng)站怎么做seo比較好的公司
  • 網(wǎng)站畢業(yè)設(shè)計(jì)怎么做網(wǎng)絡(luò)營(yíng)銷推廣活動(dòng)有哪些
  • 合伙做網(wǎng)站怎么分配股權(quán)各地疫情最新消息
  • 大連小型網(wǎng)站建設(shè)關(guān)鍵的近義詞
  • 做本地團(tuán)購(gòu)網(wǎng)站游戲網(wǎng)站交換友情鏈接
  • 合肥網(wǎng)站建設(shè)找佳達(dá)百度seo服務(wù)方案
  • 廣西網(wǎng)站建設(shè)開發(fā)外包市場(chǎng)營(yíng)銷方案范文5篇
  • 泗陽(yáng)做網(wǎng)站公司競(jìng)價(jià)托管就選微競(jìng)價(jià)
  • 網(wǎng)站logo用什么做百度網(wǎng)站打不開
  • 網(wǎng)站批量做httpsseo優(yōu)化實(shí)訓(xùn)報(bào)告
  • 深圳租房建設(shè)局網(wǎng)站天天外鏈官網(wǎng)
  • 淮安建設(shè)工程協(xié)會(huì)網(wǎng)站查詢站長(zhǎng)之家 seo查詢
  • 淄博網(wǎng)站制作seo優(yōu)化專員
  • 在什么網(wǎng)站可以自承包活來做搜索引擎入口
  • 廈門功夫廣告設(shè)計(jì)網(wǎng)站建設(shè)工作室網(wǎng)站優(yōu)化排名資源
  • 市總工會(huì)智慧網(wǎng)站建設(shè)總結(jié)奶茶的營(yíng)銷推廣軟文
  • 綿陽(yáng) 網(wǎng)站設(shè)計(jì)推廣引流哪個(gè)軟件最好