DAY08------java数组、操作、冒泡、排序、array类、for each(全)
来源:互联网 发布:淘宝ifashion怎么报名 编辑:程序博客网 时间:2024/05/17 07:30
数组
是java中的一种基本存储数据的集合,目的是存储相同类型下的多个不同元素,并且可以多数组中的元素进行增删改查操作。
优点
1 数组对每个元素都有特点的编号,从0开始,方便对数组进行操作
2 使用java数组必须先声明数组,再给该数组分配内存
3 数组对应内存中一段连续的空间
4 数组元素必须是相同类型,也可以使引用数据类型,但是同一数组中的元素必须是同类型
一维数组:可以理解为一行多列、类型相同的数据,其中每个数据被称为数组元素
int varName[];
int[] varName;
数组的长度一旦确定就不能更改。
java声明数组的时候不能指定其长度(元素的个数)
java中的数组必须先初始化后才能使用,初始化时由我们指定初始化的元素,系统自动决定数组的长度
格式:数组名=new 数组类型[]{元素1,元素2,元素3...元素n};
静态初始化:数组名={元素1,元素2...}
动态初始化:数组名=new 数组类型[数组长度];
注:不能静态和动态同时使用,不能同时指定数组的长度和元素
package com.itheima;public class Test9910{public static void main(String[] args){//定义一个数组int [] age = new int[10];//10为数组的长度,定了长度就不能同时定义元素int sex[] = {1,2,3,4,5,6,7,8};//直接赋值定义元素//定义动态初始化数组for(int i=0;i<age.length;i++){age[i]=i;int k=1;sex[k]=age.length-i;System.out.print(sex[k]+"+K");System.out.println(age[i]+"");}}}
运行结果:
10+K 0
9+K1
8+K 2
7+K 3
6+K 4
5+K 5
4+K 6
3+K 7
2+K 8
1+K 9
数组求最大值:
int max=age[0];//将数组赋初值给max
for(int i=0;i<age.length;i++){//采用循环增量一个个与max比较
if(max<age[i]){//如果大则替换当前max的值
max=age[i];//当前大则赋值
}
}
排序经典算法:冒泡排序
package com.itheima;import java.util.Arrays;public class Test9910{public static void main(String[] args){//定义一个数组int count1[] = {1,2,3,84,5,9,16,87,8,99};//定义动态初始化数组for(int i=0;i<count1.length;i++){//循环读取数组从第一个加载到最后一个数组for(int j=i+1;j<count1.length-1;j++){ //j是第二个数,也是依次加载if(count1[i] > count1[j]){ //判断第一个大于第二个数int temp =count1[i];//初始化临时存储数组空间,将一个数赋值给它count1[i]=count1[j];//将第2个数赋值给第一个数count1[j]=temp;//将第2个数赋值给临时空间 完成交换}}}System.out.println("冒泡排序结果为:"+Arrays.toString(count1));}}
冒泡排序结果为:[1, 2, 3, 5, 8, 9, 16, 84, 87, 99]
分配内存空间
数组名=new 数据类型[数组长度];
new 是用来实现为数组或对象分配内存
数组有固定长度,获取数组的长度用 数组名.length的方式
定义数组+分配空间
数组类型[]数组名=new 数据类型[数组长度];
定义数组时不指定长度,分配空间时指定数组长度;
String city[]=new Srting[7];
数组元素:
数组名[下标值];
city[0]=shanghai;
在方法中定义变量,包括基本数据类型变量和引用数据类型变量,都将在栈内存
中分配空间,当超过变脸作用范围后,自动回收。
初始化=定义数组+分配空间+赋值
二维数组:
二维数组其实就是一个一维数组,他的每个元素又是一个一维数组
动态初始化:
int[][] arr =new int[3][4];
定义了一个二维数组,其中有3个一维数组,每一个一维数组中有2个元素
静态初始化:
int[][] arr =new int[][]{{1,2},{2,2},{3,3}};
int[][] arr ={{1,2},{2,2},{3,3}};
操作数组的工具类------Arrays
static int binarySearch(type[] a,type key)使用二分查找搜索key元素 无则返回负数
static int binarySearch(type[] a,int fromIndex,int toIndex,type key)使用二分搜索从formindex到toindex的key元素,无返回负数
static boolean[] copyOf(type[] original,int newLength)复制指定的数组
static byte[] copyOfRange(type[] orginal,int form,int to)将数组的指定范围复制到一个新数组中
static boolean equals(type[] a,type[] a2)如果2数组长度和元素一一相等,返回ture
static void fill(type[] a,type val)将a数组所有元素都赋为val
static void sort(type[] a)将数组按照升序排序
static void toString(type[] a)返回指定数组内容的字符串表示形式,多个数组元素之间用逗号隔开
使用数组工具类可以节省开发时间,注意查阅api
Java5 的新特性对数组的支持
增强for循环 for each
for(参数类型 参数名:数组名){
代码块;
}
package com.itheima;//使用java5中的数组新特性 实现如for each遍历的方式输出数组元素public class Test9910{public static void main(String[] args){int age[]={1,2,3,45,6,6,7,86,8};for(int i:age){System.out.print(i+"");}}}
使用该方法就把数组遍历出来了for-each
for-each用于数组和Iterable对象的元素遍历,集合中常用到
---------------------- 拖走FM----期待与您交流! --------
收音机,电台,网上电台,广播,在线广播,网络广播,广播电台,网络电台,在线电台,电台在线收听,广播电台在线收听,网络电台在线收听,在线收听电台,fm收音机,网络收音机,广播下载,在线收音机,收音机软件下载,电台软件下载,网络收音机下载--------------
---------------------- 拖走FM----期待与您交流! --------
- DAY08------java数组、操作、冒泡、排序、array类、for each(全)
- C#数组(定义/Array.Sort/Array.Reverse/冒泡排序)
- 冒泡排序(for java)
- JAVA数组操作及选择、冒泡排序
- for循环数组冒泡排序
- java数组冒泡排序
- Java数组-冒泡排序
- java数组--冒泡排序
- Java数组排序-冒泡排序
- java -Array数组操作
- 包装类Stringbuffer Java数组 冒泡排序
- Java-数组排序(选择,冒泡,插入)
- Java数组排序(冒泡、选择)
- Java数组冒泡排序 (代码)
- JAVA操作数组----二分查找法,冒泡排序
- JAVA for-each循环与数组
- (13)数组操作:遍历、输出最大值、冒泡排序、选择排序,java已有的排序方法、折半查找
- Java学习笔记(五)--二维数组 冒泡排序 选择排序 Arrays数组工具类
- CentOS上可用的nginx启动脚本
- fedora20给firefox安装flash插件
- java 调用WebService服务接口
- cocos2dx网络传输之CURL
- ubuntu下使用VNC连接树莓派raspberry
- DAY08------java数组、操作、冒泡、排序、array类、for each(全)
- java入门一DAY09------java 面向对象全面总结
- 20140403
- Nginx配置文件详细说明
- nginx.conf中文详解
- hdu 1002 A + B Problem II
- Pick numbers
- hashcode方法和equals方法
- 03自定义认证