Java基礎語法three

一、一維數組
一維數組初始化

數據類型[] 數組名=new 數據類型[數組長度]//動態初始化

數據類型[] 數組名=new 數據類型[]{值}//靜態初始化

數據類型[] 數組名={值}

數組長度一旦確定,就不可更改。

數組是序排序;

數組屬于引用數據類型的變量,數組的元素可以是任意數據類型;

一維數組引用:數組名[索引/下標]

獲取數組長度:數組名.length
如何遍歷數組:
for (int i = 0; i < 數組名.length; i++) {System.out.println(數組名[i]);}

不同類型的一維數組默認初始化值:

整型:0

浮點型:0.0

char:0或'\u0000',而非'0'

boolean:false

引用類型:null

二、二維數組
二維數組初始化
數據類型[][]數組名=new 數據類型[一維數組的個數][一維數組的長度]//動態初始化
數據類型[][]數組名=new 數據類型[一維數組的個數][]//動態初始化
數據類型[][]數組名=new 數據類型[][]{{},{},{}……,{}}//靜態初始化
獲取數組長度:

數組名.length

數組名[索引].length

如何遍歷數組:
public static void main(String[] args) {// TODO Auto-generated method stubint[][] arr = new int[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.println(arr[i][j] + "\t");}System.out.println();}}
二維數組默認初始化值:

方式一:

public static void main(String[] args) {// TODO Auto-generated method stub//二維數組使用,二維數組分為外層,內層元素int[][] arr = new int[4][3];//arr[0]外層//arr[0][0]內層//默認初始化值System.out.println(arr[0]);//[I@4e50df2eSystem.out.println(arr[0][0]);//0System.out.println(arr);//[[I@1d81eb93}

外層元素初始化值為:地址值

內層元素初始化值為:與一維數組初始化情況相同

方式二:

public static void main(String[] args) {// TODO Auto-generated method stubint[][] arr = new int[4][];System.out.println(arr[0]);//null}

外層元素初始化值為:null

內層元素初始化值為:不能調用,會報錯

三、數據結構

1、數據與數據之間的邏輯關系:集合,一對一,一對多,多對多;

2、數據的存儲結構:

線性表:順序表(數組)、鏈表、棧、隊列;

樹形結構:二叉樹

圖形結構

算法:排序算法,搜索算法

四、數組算法

10行的楊輝三角

public static void main(String[] args) {// TODO Auto-generated method stubint[][] arr = new int[10][];for (int i = 0; i < arr.length; i++) {arr[i] = new int[i + 1];arr[i][0] = arr[i][i] = 1;for (int j = 1; j < arr[i].length - 1; j++) {arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.print(arr[i][j] + "\t");}System.out.println();}}

數組的復制、反轉、遍歷

int[] array1=new int[]{1,2,3,4};
//數組的復制,區別于數組變量的賦值:array1=array2
int[] array2=new int[array1.length];
for(int i=0;i<array1.length;i++){
array2[i]=array1[i];
}
//數組反轉
for(int i=0;i<array1.length/2;i++){
int temp =array1[i];
array1[i]=array1[array1.length-i-1];
array1[array1.length-i-1]=temp;
}
//遍歷
for(int i=0;i<array1.length;i++){
System.out.println(array1[i]+"\t");
}

查找(線性查找、二分法查找)

//線性查找int num=4;boolean flag=true;for(int i=0;i<array1.length;i++) {if(num==array1[i]) {System.out.println("找到指定元素,位置為,"+i);flag=false;break;}}if(flag) {System.out.println("很遺憾,沒有找到");}//二分法查找:前提:所要查找的數組必須有序int[] arr=new int[]{12,43,2,-1,8,7,66,45};int n=-1;int head=0;//初始首索引int end=arr.length-1;//初始尾索引boolean flag1=true;while(head<=end) {int middle=(head+end)/2;if(n==arr[middle]) {System.out.println("找到指定元素,位置為,"+middle);flag1=false;break;}else if(arr[middle]>n) {end=middle-1;}else {head=middle+1;}}if(flag1) {System.out.println("很遺憾,沒有找到");}

排序算法

衡量排序算法優劣:

時間復雜度、空間復雜度、穩定性

排序:選擇排序、交換排序(冒泡排序,快速排序)、插入排序(直接插入、折半插入)、歸并排序、桶式排序、基數排序

算法5大特性:輸入、輸出、有窮性、確定性、可行性

冒泡排序:

int[] arr= new int[]{2,4,3,5,1};
for(int i=0;i<arr.length-1;i++) {for(int j=0;j<arr.length-1-i;j++) {if(arr[j]>arr[j+1]) {int temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}
}
for(int i=0;i<arr.length;i++) {System.out.println(arr[i]);
}

從平均時間來看:快速排序最佳

Arrays工具類使用

java.util.Arrays:操作數組的工具類,里面定義了很多操作數組的方法。

Arrays.equals(int[] a,int[] b):判斷兩個數組是否相等

Arrays.toString(int[] a):輸出數組信息

Arrays.fill(int[] a,int val):將指定值填充到數組中

Arrays.sort(int[] a):對數組進行排序

常見異常:

數組角標越界異常:ArrayIndexOutOfBoundsException

空指針異常:NullPointerException

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93847.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93847.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93847.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【數據結構】排序算法全解析:概念與接口

1.排序的概念及其運用 1.1 排序的概念 排序&#xff1a;所謂排序&#xff0c;就是使一串記錄&#xff0c;按照其中的某個或某些關鍵字的大小&#xff0c;遞增或遞減的排列起來的操作。 穩定性&#xff1a;假定在待排序的記錄序列中&#xff0c;存在多個具有相同的關鍵字的…

在 CentOS 7 上使用 LAMP 架構部署 WordPress

CentOS 7 LAMP 架構部署 WordPress全步驟本文將詳細介紹如何在 CentOS 7 系統上通過 LAMP&#xff08;Linux Apache MariaDB PHP&#xff09;架構部署 WordPress 博客平臺。 在CentOS 7上基于LAMP架構部署WordPress 一、系統基礎配置 1. 修改主機名&#xff08;本機IP&#…

Node.js導入MongoDB具體操作

在Node.js應用程序中&#xff0c;導入MongoDB是一項常見任務。本文將詳細介紹如何在Node.js中連接和操作MongoDB數據庫&#xff0c;包括安裝必要的包、配置連接、執行基本的CRUD操作等步驟。1. 安裝必要的包首先&#xff0c;確保你已經安裝了Node.js和npm。然后&#xff0c;通過…

HTML--pre標簽的作用

原文網址&#xff1a;HTML--pre標簽的作用-CSDN博客 簡介 本文介紹HTML里pre標簽的作用。 <pre> 元素表示預定義格式文本。里邊的文本會保留原格式&#xff0c;以等寬字體的形式展現出來&#xff0c;文本中的空白符&#xff08;比如空格和換行符&#xff09;都會顯示出…

機器學習--數據預處理

目錄 一、數據清洗&#xff1a;讓數據純凈如新 1、缺失值處理&#xff1a; 2、異常值處理 3、重復值處理 二、數據變換&#xff1a;重塑數據的 “形狀” 1、歸一化 2、標準化 三、總結與展望 機器學習小白必看&#xff1a;數據預處理實戰筆記 最近投身于機器學習的學習…

Python 數據可視化:Matplotlib 與 Seaborn 實戰

Python 數據可視化&#xff1a;Matplotlib 與 Seaborn 實戰????在當今數據驅動的時代&#xff0c;數據可視化成為了理解和傳達數據信息的關鍵手段。Python 作為一門強大的編程語言&#xff0c;擁有豐富的數據可視化庫&#xff0c;其中 Matplotlib 和 Seaborn 尤為突出。本文…

計算機網絡技術學習-day4《路由器配置》

目錄 一、路由器基礎認知 1. 路由器的核心功能 2. 路由器與交換機的區別 二、路由器配置基礎操作 1. CLI&#xff08;命令行界面&#xff09;模式體系 2. 基礎配置命令示例 &#xff08;1&#xff09;基礎信息配置 &#xff08;2&#xff09;接口IP地址配置&#xff08;…

IDEA(十四) IntelliJ Idea 常用快捷鍵(Mac)

目錄準備&#xff1a;Mac鍵盤符號和修飾鍵說明一、編輯類快捷鍵二、Search/Replace&#xff08;查詢/替換&#xff09;三、編譯、運行四、debug 調試五、Navigation&#xff08;導航&#xff09;六、Refactoring&#xff08;重構&#xff09;七、VCS/Local History八、Live Tem…

八月月報丨MaxKB在教育及教學科研領域的應用進展

在2025年5月的“MaxKB用戶應用月度報告”中&#xff0c;我們對MaxKB開源智能體平臺在教育行業的典型應用場景進行了總結。MaxKB在教育行業的應用主要集中在教學輔助、學術研究、校園服務、行政辦公、財務管理、招生等場景。 目前&#xff0c;“DeepSeekMaxKB”的組合正在被包括…

一周學會Matplotlib3 Python 數據可視化-繪制自相關圖

鋒哥原創的Matplotlib3 Python數據可視化視頻教程&#xff1a; 2026版 Matplotlib3 Python 數據可視化 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili 課程介紹 本課程講解利用python進行數據可視化 科研繪圖-Matplotlib&#xff0c;學習Matplotlib圖形參數基本設置&…

第三十三天(信號量)

非常非常非常.....的重要在共享內存的代碼里面p1.c實質是有問題lt._flag 1;//這里先置1if(c Q)sprintf(lt._buf,"quit");elsesprintf(lt._buf,"大家好&#xff0c;%d 我系渣渣輝. %d 是兄弟就來砍我吧!!! %d",i,i1,i2);while(*((int *)shmptr));//如果別…

Scikit-learn通關秘籍:從鳶尾花分類到房價預測

點擊 “AladdinEdu&#xff0c;同學們用得起的【H卡】算力平臺”&#xff0c;H卡級別算力&#xff0c;按量計費&#xff0c;靈活彈性&#xff0c;頂級配置&#xff0c;學生專屬優惠。 決策樹/SVM/KNN算法對比 模型評估指標解析 讀者收獲&#xff1a;掌握經典機器學習全流程 …

rsync + inotify 數據實時同步

rsync inotify 數據實時同步 一、rsync簡介 rsync是linux系統下的數據鏡像備份工具。使用快速增量備份工具Remote Sync可以遠程同步&#xff0c; 支持本地復制&#xff0c;或者與其他SSH、rsync主機同步 二、rsync三種命令 Rsync的命令格式常用的有以下三種&#xff1a;&#…

Linux基礎介紹-3——第一階段

文章目錄一、進程管理1.1 進程的基本概念1.2 常見管理命令1.3 進程優先級調整&#xff1a;nice 與 renice二、軟件包管理三、防火墻管理四、shell腳本五、xshell鏈接kali一、進程管理 1.1 進程的基本概念 進程是程序的動態執行實例&#xff0c;每個進程都有唯一的 PID&#x…

python 可迭代對象相關知識點

1. 什么是可迭代對象 (Iterable) 在 Python 里&#xff0c;可迭代對象指的是&#xff1a; &#x1f449; 能夠一次返回一個元素的對象&#xff0c;可以被 for 循環遍歷。 常見的可迭代對象有&#xff1a; 序列類型&#xff1a;list、tuple、str集合類型&#xff1a;set、dict&a…

ijkplayer Android 編譯

一、下載編譯庫文件1.1 編譯庫文件環境&#xff1a;ubuntu 20.04 版本liangtao:ffmpeg$lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: 20.04 Codename: focal1.2 項目源碼下載使用 git 下載 ijkplayer&#…

snn前向推理時間計算(處理器實現)

公式 Tinf(1?sparsity)number of synapsesnumber of sub-processorsSIMD ways T_{\text{inf}} \frac{(1-\text{sparsity})\times \text{number of synapses}} {\text{number of sub-processors}\times \text{SIMD ways}} Tinf?number of sub-processorsSIMD ways(1?sparsity…

Linux------《操作系統全景速覽:Windows·macOS·Linux·Unix 對比及 Linux 發行版實戰指南》

&#xff08;一&#xff09;常見操作系統&#xff08;system&#xff09;電腦&#xff1a;Windows,Macos,Linux,UnixWindows&#xff1a;微軟公司開發的一款桌面操作系統&#xff08;閉源系統&#xff09;。版本有dos&#xff0c;win98&#xff0c;win NT&#xff0c;win XP , …

Three.js 初級教程大全

本文檔旨在為初學者提供一個全面的 Three.js 入門指南。我們將從 Three.js 的基本概念開始&#xff0c;逐步介紹如何創建場景、添加物體、設置材質、使用光照和相機&#xff0c;以及如何實現簡單的動畫和交互。通過本教程&#xff0c;你將能夠掌握 Three.js 的核心知識&#xf…

遙感領域解決方案丨高光譜、無人機多光譜、空天地數據識別與計算

一&#xff1a;AI智慧高光譜遙感實戰&#xff1a;手撕99個案例項目、全覆蓋技術鏈與應用場景一站式提升方案在遙感技術飛速發展的今天&#xff0c;高光譜數據以其獨特的光譜分辨率成為環境監測、精準農業、地質勘探等領域的核心數據源。然而&#xff0c;海量的波段數據、復雜的…