Java基础学习--数组
2019-04-18 08:54:44来源:博客园 阅读 ()
1.数组的定义:
数组(Array)是相同数据类型的数据的有序集合。
2.数组的3个特点:
2.1数组长度是确定。数组一旦申请完空间,长度不能发生变化,用length属性访问。
2.2数组的元素都是同一数据类型。
2.3数组是有序的 。每个元素通过下标/索引标记,索引从0开始。
3.数组的3种声明方式:
3.1:
int[] arr = new int[2];
arr[0] = 10;
arr[1] = 20;
3.2:
int[] arr2 = new int[]{10,20,30,40,50};
3.3 :
int[] arr3 = {10,20,30,40};
4.数组的内存空间
数组的数据存储在堆空间中,声明数组时,在栈空间中存储数组在堆空间中的地址,所以数组时引用数据类型。
5.数组的遍历算法:
for(int i=0;i < arr.length;i++){
System.out.println("arr[" + i + "]" + "=" + arr[i]);
}
6.数组的常用算法
6.1插入算法
public class Test07{ public static void main(String[] args){
// 一个有序的数组,向该数组中添加一个元素,数组依然有序。 int[] arr = {1,3,7,9,12,20,0}; int t = 0;
// 【1】找位置 int loc = -1; // 表示t应该添加到的位置 for(int i = 0;i<arr.length-1;i++){ if(arr[i] >= t){ loc = i; break; } }
System.out.println("loc = "+loc);
if(loc < 0){ // 没找到合适的位置 arr[arr.length-1] = t; }else{ // 【2】依次后移 for(int j=arr.length-1;j>loc;j--){ arr[j] = arr[j-1]; } // 【3】添加插入的值 arr[loc] = t; }
// 验证 for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]+"\t"); } } } |
6.2删除算法:
public class Test08{ public static void main(String[] args){
// 删除算法 int[] arr = {1,3,7,9,12,20}; int t = 1;
// 【1】找位置 int loc = -1; for(int i=0;i<arr.length;i++){ if(t == arr[i]){ loc = i; break; } }
// 【2】移动元素 if(loc < 0){ System.out.println(t+"在数组中不存在"); }else{ for(int j = loc;j<arr.length-1;j++){ arr[j] = arr[j+1]; }
// 【3】最后一个元素置0 arr[arr.length-1] = 0; }
// 验证 for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]+"\t"); }
} } |
6.3冒泡排序算法
|
public class Test10{ public static void main(String[] args){ // 对一个无序的数组进行排序 int[] arr = {10,5,3,4,2,9,7};
int tmp = 0; 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]){ tmp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tmp; } } }
for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+"\t"); }
} } |
原文链接:https://www.cnblogs.com/WhiperHong/p/10720395.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:java——初识
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash