黑马程序员--数组
来源:互联网 发布:js获取当前unix时间戳 编辑:程序博客网 时间:2024/06/09 23:10
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
什么是数组?
数组(Array)是Java 语言中内置的一种基本数据存储结构,通俗的理解,就是一组数的集合,目的是用来一次存储多个数据。数组是程序中实现很多算法的基础,可以在一定程度上简化代码的书写。
数组的概念:
同一种类型数据的集合。其实数组就是一个容器。
数组的好处
可以自动给数组中的元素从0开始编号,方便操作这些元素。
一维数组:
格式1
元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
示例:int[] arr = nwe int[5];
(动态初始化)
格式2
元素类型[] 数组名 = new 元素类型 []{元素,元素,....};
int [] arr =newint[]{3,4,1,7};
int [] arr = {3,4,1,7};
(静态初始化)
注:动态初始化和静态初始化不能同时使用。
数组取出:
通过数组的角标来获取,定义一个int 数组arr 长度为5,则可以取出arr中的1-4角标(从0开始计算,Java中大多都是含头不含尾)àarr[x](x<5)如角标出界限,则会出现ArrayIndexOutOfBoundsExceptio:数组角标越界异常,而当对数组进行动态初始化并未赋值的情况下进行取值,则会出现NullPointerException:空指针异常。在不确定数组长度的情况下可以使用.length来获取数组的长度。
示例:
package com.itheima;
public class ArrayDemo {
public static void main(String[] args) {
//通过静态初始化设置int数组的值
int[] arr = new int[]{3,5,7,9};
//通过Array.length方法获取数组长度。
for(intx = 0;x<arr.length;x++){
//打印出x角标说对应的值。
System.out.println(arr[x]);
}
}
}
/*3
5
7
9
*/
常见操作:
package com.itheima;
import java.util.Arrays;
public class ArrayDemo {
public static void main(String[] args) {
int[] arr = new int[]{3,5,7,9,8,7,3};
// repetition(arr);
// max(arr);
printArr(arr);
// bubble(arr);
// selection(arr);
//开发中常用为Arrays.sort
Arrays.sort(arr);
printArr(arr);
}
private static void repetition(int[]arr) {
//判断数组中元素是否重复。
for(inti = 0;i<arr.length-1;i++){
for(intj = i+1;j<arr.length;j++){
if(arr[i]==arr[j]){
System.out.println(i+"角标元素:"+arr[i]+"和"+j+"角标元素:"+arr[j]+"是重复的");
}
}
}
/* 0角标元素:3和6角标元素:3是重复的
2角标元素:7和5角标元素:7是重复的
*/
}
private static void max(int[]arr) {
//求数组中的最大值。
int max = 0;
for(inti = 0 ; i<arr.length;i++){
if(max<arr[i])
max = arr[i];
}
System.out.println("数组中最大值为:"+max);
}
private static void bubble(int[]arr) {
//冒泡排序,从小到大
for (inti=0;i<arr.length-1 ;i++ ) {
//arr.length-i-1让每一次比较的元素减少,-1是为了防止数组角标越界
for (inty=0;y<arr.length-i-1 ;y++) {
if(arr[y]>arr[y+1]){
inttemp = 0;
temp = arr[y];
arr[y] =arr[y+1] ;
arr[y+1] =temp;
}
}
}
}
//选择排序
private static void selection(int[]arr) {
for(inti=0;i<arr.length;i++){
for (intj = i+1; j <= arr.length-1;j++) {
if(arr[i] >arr[j]){
inttemp = arr[i];
arr[i] =arr[j];
arr[j] =temp;
}
}
}
}
//打印数组。
private static void printArr(int[]arr) {
for (inti = 0; i < arr.length; i++) {
if(i!=arr.length-1)
System.out.print(arr[i]+",");
else
System.out.println(arr[i]);
}
//Arrays方法中提供的方法。
// System.out.println(Arrays.toString(arr));
}
}
二维数组
二维数组其实就是一个一维数组的数组。他的每一个元素都是一维数组。
初始化方法:
动态初始化:
int[][] arr2 =new int[3][5];
定义了一个二维数组,二维数组中有3个一维数组,每一个一维数组有5个元素。
静态初始化:
int[][]arr3 = newint[][]{
{1,2,3},
{4,5,6}
};
二维数组取值操作:
package com.itheima;
public class ArraysDemo2 {
public static void main(String[] args) {
int[][]arr = newint[][]{
{3,3,5},
{2,3},
{345,3,2}
};
//首先获取到二维数组中的一位数组,再获取一维数组中的元素。
for (inti = 0; i < arr.length; i++) {
System.out.print("{");
for (intj = 0; j < arr[i].length;j++) {
if(j!=arr[i].length-1)
System.out.print(+arr[i][j]+",");
else{
System.out.println(arr[i][j]+"}");
}
}
}
}
}
- 黑马程序员-java数组
- 黑马程序员-数组
- 黑马程序员_数组
- 黑马程序员-----数组
- 黑马程序员-java数组
- 黑马程序员_day04 数组。
- 黑马程序员_数组
- 7.黑马程序员-数组
- 黑马程序员_数组
- 黑马程序员-数组
- 黑马程序员_数组
- 黑马程序员-数组
- 黑马程序员_数组
- 黑马程序员--java数组
- 黑马程序员--数组
- 黑马程序员---数组
- 黑马程序员--关于数组
- 黑马程序员-数组
- 百度地图 ip查询 service
- drawable对应表
- jxl 读取excel日期格式
- spring framework源码下载并导入eclipse
- hdu 3037 saving beans (lucas定理)
- 黑马程序员--数组
- Linux下禁止ping方法
- SQL SERVER中ROLLUP 运算符的用法
- Prototype Pattern(原型模式)
- C++ const 与 重载
- postgresql分区表创建
- Android 异步开发之 AsyncQueryHandler
- ssl握手过程
- 祭奠我死去的CET-6