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

java簡(jiǎn)單實(shí)現(xiàn)數(shù)組的增刪改查方法

 更新時(shí)間:2021年07月30日 17:03:02   作者:小超0748  
這篇文章主要介紹了Java數(shù)組的增刪改查的示例,幫助大家更好的利用Java處理數(shù)據(jù),感興趣的朋友可以了解下,希望能給你帶來幫助

1.一維數(shù)組​

概念:一組數(shù)據(jù)的容器(數(shù)組可以存放多個(gè)數(shù)據(jù))

​ 注意:

​ 1.數(shù)組是引用數(shù)據(jù)類型

​ 2.數(shù)組中的數(shù)據(jù)又叫做元素

​ 3.每個(gè)元素都有編號(hào)叫做下標(biāo)/索引

​ 4.下標(biāo)從0開始

​ 5.數(shù)組初始化后,會(huì)在內(nèi)存中開辟一連串連續(xù)的空間

​ 6.數(shù)組一旦初始化后長(zhǎng)度不可以改變(數(shù)組沒有擴(kuò)容和刪除)

​ 7.數(shù)組的操作:添加、修改、查詢​

​ 數(shù)組的聲明:數(shù)據(jù)類型[] 數(shù)組名;​

數(shù)組的初始化:

​ 靜態(tài)初始化:數(shù)據(jù)由程序員指定,長(zhǎng)度由系統(tǒng)分配

public static void main(String[] args){
		//靜態(tài)初始化1
		//String[] names = new String[]{"小明","小紅","鐵蛋","二狗","大傻子"};
		//靜態(tài)初始化2
		//String[] names;
		//names = new String[]{"小明","小紅","鐵蛋","二狗","大傻子"};
		//靜態(tài)初始化3
		String[] names = {"小明","小紅","鐵蛋","二狗","大傻子"};
		//設(shè)置指定下標(biāo)上的元素
		names[3] = "大狗";
		//獲取指定下標(biāo)上的元素
		String n = names[3];
		System.out.println("獲取指定下標(biāo)上的元素:" + n);//林成
		//ArrayIndexOutOfBoundsException - 數(shù)組下標(biāo)越界異常
		//System.out.println(names[100]);
		//獲取元素個(gè)數(shù)
		int len = names.length;
		System.out.println("獲取元素個(gè)數(shù):" + len);//5
		System.out.println("-----------");
		//遍歷 - for循環(huán)
		for(int i = 0;i<names.length;i++){
			System.out.println(names[i]);
		}
		System.out.println("-----------");
		//遍歷 - foreach(增強(qiáng)for循環(huán))
		for(String str:names){//遍歷數(shù)組,依次把元素賦值給str
			System.out.println(str);
		}
		/**
			遍歷時(shí)要使用到下標(biāo),就用for循環(huán)遍歷
			遍歷時(shí)要不使用到下標(biāo),就用foreach遍歷	
		*/
	}

動(dòng)態(tài)初始化:長(zhǎng)度由程序員指定,數(shù)據(jù)由系統(tǒng)分配(默認(rèn)值)

​ 整數(shù)類型:0

​ 浮點(diǎn)類型:0.0

​ 字符類型:' '

​ 布爾類型:false

​ 引用類型:null(空)

public static void main(String[] args){
		//動(dòng)態(tài)初始化1
		String[] names = new String[5];//5->5個(gè)長(zhǎng)度
		//設(shè)置指定下標(biāo)上的元素
		names[0] = "小明";
		names[1] = "鐵蛋";
		names[2] = "二狗";
		//獲取指定下標(biāo)上的元素
		String n = names[2];
		System.out.println("獲取指定下標(biāo)上的元素:" + n);//二狗
		//ArrayIndexOutOfBoundsException - 數(shù)組下標(biāo)越界異常
		//System.out.println(names[100]);
		//獲取元素個(gè)數(shù)
		int len = names.length;
		System.out.println("獲取元素個(gè)數(shù):" + len);//5
		System.out.println("-----------");
		//遍歷 - for循環(huán)
		for(int i = 0;i<names.length;i++){
			System.out.println(names[i]);
		}
		System.out.println("-----------");
		//遍歷 - foreach(增強(qiáng)for循環(huán))
		for(String str:names){//遍歷數(shù)組,依次把元素賦值給str
			System.out.println(str);
		}
		/**
			遍歷時(shí)要使用到下標(biāo),就用for循環(huán)遍歷
			遍歷時(shí)要不使用到下標(biāo),就用foreach遍歷	
		*/

2.數(shù)組的擴(kuò)容

前面講到數(shù)組一旦初始化后長(zhǎng)度不可以改變(數(shù)組沒有擴(kuò)容和刪除),那我們?nèi)绾卧谠瓉淼臄?shù)組上添加數(shù)據(jù)。數(shù)組沒有擴(kuò)容,但是可以將數(shù)組中的數(shù)據(jù)從小的容器放到大的容器里。

public static void main(String[] args){
		//源數(shù)組
		String[] names = {"小明","小紅","鐵蛋","二狗"};
		//新數(shù)組
		//(names.length>>1在此次可以理解為(names.length/2)
		int capacity = names.length + (names.length>>1);//新容量:是源數(shù)組長(zhǎng)度的1.5倍
		String[] newNames = new String[capacity];
		//把源數(shù)組所有的數(shù)據(jù)遷移到新數(shù)組中
		for(int i = 0;i<names.length;i++){
			newNames[i] = names[i];
		}
		//將新數(shù)組的地址賦值給源數(shù)組
		names = newNames;
		//遍歷源數(shù)組
		for(String name:names){
			System.out.println(name);
		}
	}

小明小紅鐵蛋二狗 null null

3.數(shù)組的復(fù)制

1.直接將數(shù)組賦值給新數(shù)組

String[] names = {“小明”,“小紅”,“鐵蛋”,“二狗”};

String[] newNames = names;

這樣做會(huì)有一個(gè)小缺陷,修改源數(shù)組,新數(shù)組的數(shù)據(jù)也隨之改變.這是因?yàn)橘x值號(hào)所給到的不是原數(shù)組的數(shù)據(jù),而是原數(shù)組的地址。

public class Test111 {
	public static void main(String[] args){
	    //源數(shù)組
	    String[] names = {"小明","小紅","鐵蛋","二狗"};
	    //新數(shù)組
	    String[] newNames = names;
	    //遍歷新數(shù)組
	    System.out.print("修改原數(shù)據(jù)前:");
	    for(String name : newNames){
	        System.out.print(name+"\t");
	    }
	    System.out.println();
	    //修改源數(shù)組
	    names[0] = "大傻子";
	    //遍歷新數(shù)組
	    System.out.print("修改原數(shù)據(jù)后:");
	    for(String name : newNames){
	        System.out.print(name+"\t");
	    }
	    System.out.println();
	}
}

修改原數(shù)據(jù)前:小明 小紅 鐵蛋 二狗 修改原數(shù)據(jù)后:大傻子 小紅 鐵蛋 二狗

2.創(chuàng)建一個(gè)新的數(shù)組,再將原數(shù)組的數(shù)據(jù)逐個(gè)賦值

public static void main(String[] args){
		//源數(shù)組
		String[] names = {"小明","小紅","鐵蛋","二狗"};
		//新數(shù)組
		String[] newNames = new String[names.length];
		//將源數(shù)組中數(shù)據(jù)依次賦值給新數(shù)組
		for(int i = 0;i<names.length;i++){
			newNames[i] = names[i];
		}
		//修改源數(shù)組
		names[0] = "大聰明";
		//遍歷新數(shù)組
		for(String name : newNames){
			System.out.println(name);
		}
	}

小明 小紅 鐵蛋 二狗

4.數(shù)組的刪除

1.新建一個(gè)小容量的數(shù)組,然后將不刪除的數(shù)據(jù)導(dǎo)入。排除了需要?jiǎng)h除的數(shù)據(jù)

缺點(diǎn):數(shù)組原本是存放數(shù)據(jù)的,刪除元素后,數(shù)組長(zhǎng)度變短

public static void main(String[] args){
		//源數(shù)組
		String[] names = {"小明","小紅","鐵蛋","二狗"};
		//新數(shù)組
		String[] newNames = new String[names.length-1];
		//將源數(shù)組的數(shù)據(jù)遷移到新數(shù)組中,要?jiǎng)h除的元素(深田詠美)除外
		int index = 0;//新數(shù)組的下標(biāo)
		for(String name:names){
			if(!name.equals("小紅")){
				newNames[index] = name;
				index++;
			}
		}
		//將新數(shù)組的地址賦值給源數(shù)組
		names = newNames;
		//遍歷源數(shù)組
		for(String name:names){
			System.out.println(name);
		}
	}

小明 鐵蛋 二狗

2.將需要?jiǎng)h除的數(shù)據(jù)后面的數(shù)據(jù)整體向前移,覆蓋掉刪除的數(shù)據(jù),這樣就可以留出空間了
public static void main(String[] args){
		//源數(shù)組
		String[] names = {"小明","小紅","鐵蛋","二狗"};
		//數(shù)據(jù)的遷移
		for(int i = 1;i<names.length-1;i++){
			names[i] = names[i+1];
		}
		names[names.length-1] = null;
		//遍歷源數(shù)組
		for(String name:names){
			System.out.println(name);
		}
	}

小明鐵蛋二狗 null

5.數(shù)組的排序

數(shù)組的排序方法有很多種,今天就分享比較簡(jiǎn)單的冒泡排序

​ 口訣:

​ N個(gè)數(shù)字來排序

​ 兩兩相比小靠前

​ 外層循環(huán)N-1

​ 內(nèi)層循環(huán)N-1-i

public static void main(String[] args){
		int[] is = {39,77,27,20,45,62};
		for(int i = 0;i<is.length-1;i++){
			for(int j = 0;j<is.length-1-i;j++){
				if(is[j] > is[j+1]){
					int temp = is[j];
					is[j] = is[j+1];
					is[j+1] = temp;
				}
			}
		}
		for(int num : is){
			System.out.println(num);
		}
	}

這里分享一個(gè)Arrays工具類,導(dǎo)入Arrays包后可直接調(diào)用里面的排序方法sort

public static void main(String[] args){
	import java.util.Arrays;
    int[] a={1,5,8,6};
    for(int num : a){
		System.out.println(num);
	}
}

1 5 6 8

6.數(shù)組的查找

1.順序查找:從頭到尾遍歷(簡(jiǎn)單除暴,效率相對(duì)較低)

for(int i = 0;i<is.length;i++){
			if(is[i] == num){
				System.out.println("查找到了");
			}
		}

2.二分法查找

​ 前提:先排序(效率高于順序查找)

​ 排序時(shí)就可以使用Arrays.sort(is);

**二分法查找適用于數(shù)據(jù)量較大時(shí),但是數(shù)據(jù)需要先排好順序。

public static void main(String[] args){
		int[] is = {39,77,27,20,45,62};
		int num = 77;
		//排序
		Arrays.sort(is);
		int start = 0;
		int end = is.length-1;
		while(start <= end){
			int mid = (start+end)/2;
			if(num >is[mid]){
				start = mid+1;
			}else if(num < is[mid]){
				end = mid-1;
			}else{
				System.out.println("查找到了");
				break;
			}
		}
	}

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Java INPUTSTREAM如何實(shí)現(xiàn)重復(fù)使用

    Java INPUTSTREAM如何實(shí)現(xiàn)重復(fù)使用

    這篇文章主要介紹了Java INPUTSTREAM如何實(shí)現(xiàn)重復(fù)使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Spring整合SpringMVC與Mybatis(SSM)實(shí)現(xiàn)完整登錄功能流程詳解

    Spring整合SpringMVC與Mybatis(SSM)實(shí)現(xiàn)完整登錄功能流程詳解

    開學(xué)學(xué)校開始講servlet 后期要求做一個(gè)登錄功能,這個(gè)使用SSM先只做個(gè)簡(jiǎn)單的只帶登錄功能的,且項(xiàng)目使用了MyBatis-Plus來簡(jiǎn)化開發(fā)流程。看情況決定要不要升級(jí)功能或者換個(gè)寫法
    2022-09-09
  • 解決springboot上傳圖片后無法立即訪問需重啟的問題

    解決springboot上傳圖片后無法立即訪問需重啟的問題

    這篇文章主要介紹了解決springboot上傳圖片后無法立即訪問需重啟的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 關(guān)于SpringBoot 打包成的可執(zhí)行jar不能被其他項(xiàng)目依賴的問題

    關(guān)于SpringBoot 打包成的可執(zhí)行jar不能被其他項(xiàng)目依賴的問題

    這篇文章主要介紹了關(guān)于SpringBoot 打包成的可執(zhí)行jar不能被其他項(xiàng)目依賴的問題,本文給大家通過圖文實(shí)例相結(jié)合給大家分享解決方法,需要的朋友可以參考下
    2020-10-10
  • SpringBoot自動(dòng)裝配原理詳解

    SpringBoot自動(dòng)裝配原理詳解

    這篇文章主要詳細(xì)介紹了SpringBoot的自動(dòng)裝配原理,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考一下
    2023-04-04
  • SpringBoot對(duì)接小程序微信支付的實(shí)現(xiàn)

    SpringBoot對(duì)接小程序微信支付的實(shí)現(xiàn)

    本文主要介紹了SpringBoot對(duì)接小程序微信支付的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2023-09-09
  • java中對(duì)象和JSON格式的轉(zhuǎn)換方法代碼

    java中對(duì)象和JSON格式的轉(zhuǎn)換方法代碼

    JSON格式可以輕松地以面向?qū)ο蟮姆绞睫D(zhuǎn)換為Java對(duì)象,下面這篇文章主要給大家介紹了關(guān)于java中對(duì)象和JSON格式的轉(zhuǎn)換方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Java實(shí)現(xiàn)樹形結(jié)構(gòu)的示例代碼

    Java實(shí)現(xiàn)樹形結(jié)構(gòu)的示例代碼

    由于業(yè)務(wù)需要,后端需要返回一個(gè)樹型結(jié)構(gòu)給前端,包含父子節(jié)點(diǎn)的數(shù)據(jù)已經(jīng)在數(shù)據(jù)庫中存儲(chǔ)好。本文將為大家分享Java現(xiàn)樹形結(jié)構(gòu)的示例代碼,需要的可以參考下
    2022-05-05
  • Spring源碼分析容器啟動(dòng)流程

    Spring源碼分析容器啟動(dòng)流程

    Spring的啟動(dòng)流程可以歸納為三個(gè)步驟:初始化Spring容器,注冊(cè)內(nèi)置的BeanPostProcessor的BeanDefinition到容器中、將配置類的BeanDefinition注冊(cè)到容器中、調(diào)用refresh()方法刷新容器
    2022-09-09
  • java基礎(chǔ)之String知識(shí)總結(jié)

    java基礎(chǔ)之String知識(shí)總結(jié)

    今天帶大家來回顧一下Java基礎(chǔ),文中詳細(xì)總結(jié)了String的相關(guān)知識(shí),對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05

最新評(píng)論

武城县| 宁城县| 虹口区| 嘉善县| 筠连县| 阜宁县| 左贡县| 称多县| 苏尼特右旗| 东辽县| 崇文区| 井研县| 南陵县| 建阳市| 阜康市| 龙海市| 黄石市| 博野县| 宝丰县| 金湖县| 太原市| 深圳市| 弋阳县| 都匀市| 长顺县| 罗城| 手机| 阿拉尔市| 寻乌县| 抚远县| 镇原县| 房产| 金寨县| 浦县| 凤台县| 汤原县| 清苑县| 湘西| 西充县| 亳州市| 漯河市|