数组
package com.neudu.chapter4_304;
public class ArrayDemo1 {
public static void main(String[] args) {
// 数据类型
// 1.基本数据类型
// 2.引用数据类型:(1)类【String 、Scanner、Random、Math....】(2)接口(3)数组
// 数组:(1)他能保存一组数据类型相同数据,保存的数据称为元素,(2)定长
// 声明,创建一个数组
// 第一种创建方式
int arr[] = new int[5] ;//5代表数组长度
// 数组元素的访问------通过索引值(下标值),长度为n的数组下标值是从0到n-1
System.out.println(arr[0]);
System.out.println(arr[5]);//数组越界
}
}
数组默认值
public class ArrayDemo2 {
public static void main(String[] args) {
//1. 数组有默认值 (整型 0、 浮点型0.0、字符型\u0000、boolean false、 String:null)
// 2.长度必须指定
// 3.new关键字
// new 开辟堆内存的操作符
double arr[] = new double[4];
System.out.println(arr[0]);
arr[0]=1.2;
System.out.println(arr[0]);
char arr2[]=new char[3];
arr2[0] = 'a';
String str[] = new String[2];
str[0] = "hello";
str[1] = "world";
}
}
创建数组
public class ArrayDemo4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr1[] = new int[3];
arr1[0] = 1;
arr1[1] = 3;
arr1[2] = 9;
int arr2[]= new int[] {1,3,9};
int arr3[]= {1,6,9};
}
}
数组遍历(重点)
public class ArrayDemo5 {
public static void main(String[] args) {
// 数组便利,将数组元素,组个取出来
int arr[] = {4,5,6,9,8,512};
//数组长度
System.out.println("数组长度"+arr.length);
for(int i=0;i < arr.length;i++) {
System.out.println(arr[i]);
}
}
}
foreach循环访问数组
public class ForwachDemo {
public static void main(String []args) {
//增强for循环
int arr[]= {1,65,56,5};
// for(int i =0;i<arr.length;i++) {
// int num=arr[i];
// System.out.println( i+" "+ num);
// }
int i=0;
for(int num :arr) {
System.out.println(i+" "+num);
i++;
}
}
}
数组排序(重点)
public class Demo2 {
public static void main(String[] args) {
// 数组排序
int arr[] = { 12, 7, 55, 7, 89, 32 };
// 1.冒泡排序
// 外层循环一共比较多少轮
/* for (int i = 1; i < arr.length; i++) {
//
for (int j = 0; j < arr.length-i; j++) {
if (arr[j] > arr[j + 1]) {
int temp;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int num : arr) {
System.out.print(num + " ");
}
*/
// 2.选择排序
for(int i = 0; i<arr.length-1;i++) {
for(int j=i+1;j<arr.length;j++) {
if(arr[i]>arr[j]) {
int temp;
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for (int num : arr) {
System.out.print(num + " ");
}
}
}
例题
public class HomeWork_op_2 {
public static void main(String[] args) {
// 将数组逆序打印
// int arr []= {1,2,3,6,68,78,9,8};
// for(int i=arr.length-1 ;i>=0;i--) {
// System.out.print(arr [i]+" ");
// }
//
// 将一个数组中的元素逆序存放(知识点:数组遍历、数组元素访问)
int arr []= {1,2,3,6,68,78,9,8};
int arr2[]= new int[arr.length];
int j=0;
int i;
for( i=arr.length-1 ;i>=0;i--) {
arr2 [j]=arr[i];
j++;
}
for(int s : arr2) {
System.out.print(s+" ");
}
}
}
public class HomeWork5 {
public static void main(String[] args) {
//最大最小,平均
int arr[] = {1,99,88,56,75,32,54,64};
int max = arr[0];
int temp=0;
int min=arr[0];
for(int num :arr) {
if (num>max) {
max=num;
}
// if(num<min) {
// num=min;
// }
// temp=temp+num;
//
}
System.out.println("最大值:"+max);
// System.out.println("最小值:"+min);
// System.out.println("平均值:"+temp*0.1/arr.length);
}
}
public class Y_HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
boolean b[]=new boolean[35];//35 个false
Random ran=new Random();
for(int i=1; i<=7;i++) {
//生成1-35之间的数字
int num = ran.nextInt(35)+1;
// 判断之前是否生成过,到b个数组中下标为num-1对应元素是TRUE还是false,是否生成过
if( b[num-1]==true) {
i--;
}
else {
b[num-1]=true;
System.out.print(num+" ");
}
}
}
}
二维数组
public class ArrayDemo6 {
public static void main(String[] args) {
// s数组当中存数组;
int arr[][]=new int[3][];//前边括号代表长度
arr[0] = new int[4] ;
arr[0][0]=1;
arr[0][1]=4;
arr[0][2]=2;
arr[0][3]=5;
arr[1] = new int[2] ;
arr[2] = new int[1] ;
System.out.println(arr[0][1]);
// int arr[] = {};
// int arr2[][] = {
// {11,11},
// {11,566556,5656},
// {1,2}
// };
// System.out.println(arr2[0][1]);
}
}
二维数组遍历
public class Demo1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[][] = new int [3][];
arr[0]= new int[3];
arr[0][0]=1;
arr[0][1]=2;
arr[0][2]=3;
arr[1]= new int[1];
arr[1][0]=10;
arr[2]= new int[2];
arr[2][0]=10;
arr[2][1]=1;
// int arr1 [][]=new int[][] {{123,2652},{5454,56,56,689}};
// int arr2[][]={{123,2652},{5454,56,56,689}};
// 数组遍历
for(int i= 0;i<arr.length;i++) {
for(int j=0;j<arr[i].length;j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
快速排序和数组拷贝
mport java.util.Arrays;
public class Demo3 {
public static void main(String[] args) {
// 快速排序
// int arr[]= {12,1,55,7,89,32};
// Arrays.sort(arr);
// for(int num:arr) {
// System.out.print(num+" ");
//数组复制
int arr1[]= {1,2,3,4,51};
int arr2[]= {6,7,8,9,9,8,7,9,9};
System.arraycopy(arr1, 2, arr2, 2,3);
for(int num1:arr2) {
System.out.print(num1+" ");
}
}
}