数组

数组定义方式:

public class ArrayDemo1 {

public static void main(String[] args) {

// 数组:一个容器,能够放一组数据

// 特点(缺点):1.必须是同类型;2.固定长度

// 声明方法1:数组类型 数组名[] = new 数组类型[长度];数组类型[] 数组名 = new 数组类型[长度];

int arr1[] = new int[5];// 默认保存了5个0

// String str[] = new String[5];// 默认保存了5个null

// boolean b[] = new boolean[5];// 默认保存了5个false

// 通过下标值去访问数组元素:长度为n的数组,下标值范围0-->n-1

arr1[0] = 120;

arr1[1] = 121;

arr1[2] = 122;

arr1[3] = 123;

arr1[4] = 124;

// arr1[5] = 125;// 数组越界

// System.out.println(arr1[0]);

// 声明方法2:数组类型 数组名[] = new 数组类型[]{元素1,元素2,....};

int arr2[] = new int[] {120,121,122,123,124};

System.out.println(arr2[3]);

// 声明方法3:数组类型 数组名[] = {元素1,元素2,....};

int arr3[] = {120,121,122,123,124,125};

// 数组的length属性

System.out.println(arr3.length);

// 字符串的length()方法

System.out.println("hello".length());

}

}

数组常见操作--遍历

public class ArrayDemo2 {

public static void main(String[] args) {

// 数组的遍历(取到数组中每一个元素)

// length遍历次数-->数组名[下标]

int arr[] = {5,7,23,98,111,13,77};

// 遍历方法1:

// for(int i = 0;i < arr.length;i++) {

// int num = arr[i];

// System.out.println(num);

// }

// 遍历方法2:增强for循环

for(int num:arr) {

System.out.println(num);

}

String str[] = {"ab","cd","ef","g"};

for(String s:str) {

System.out.println(s);

}

}

}

一维数组内存模型

二维数组内存模型

二维数组的定义及遍历

public class ManyArrayDemo1 {

public static void main(String[] args) {

// 二维数组

// int arr1[][] = {{1,2,3},{4},{5,6,7,8}};

// System.out.println(arr1.length);// 5

// 第二种声明方式

// int[][] arr2 = new int[3][];

// arr2[0] = new int[]{1,2,3};

// arr2[1] = new int[]{4,5,6};

// arr2[2] = new int[]{7,8,9,10,11,12};

// 二维数组的访问

// System.out.println(arr2[2][2]);

// 二维数组遍历

// for(int i = 0;i < arr1.length;i++) {

// for(int j = 0;j < arr1[i].length;j++) {

// System.out.print(arr1[i][j]+" ");

// }

// System.out.println();

// }

}

}

排序(冒泡,选择)

public class ArrayDemo4 {

public static void main(String[] args) {

// 1.冒泡排序

// int[] arr={6,3,8,2,9,1};

// for(int i = 0;i < arr.length - 1;i++) {

// for(int j = 0;j < arr.length - i - 1;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.println(num);

// }

// 2.选择排序

int[] arr={6,3,8,2,9,1};

// 1-1 3,6,8,2,9,1  1-2 3,6,8,2,9,1 1-3 2,6,8,3,9,1 1-4 2,6,8,3,9,1 1-5 1,6,8,3,9,2

// 2-1 1,6,8,3,9,2  2-2 1,3,8,6,9,2 2-3 1,3,8,6,9,2 2-4 1,2,8,6,9,3

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.println(num);

}

}

}

快速排序及数组拷贝

public class ArrayDemo5 {

public static void main(String[] args) {

int arr[] = {7,5,3,2,1,9,10};

Arrays.sort(arr);// 快速排序--升序

for(int num:arr) {

System.out.println(num);

}

}

}

public class ArrayCopyDemo1 {

public static void main(String[] args) {

// 数组的复制

int source[] = {1,2,3,4,5,6};

int dest[] = {7,8,9,10,11,12,13,14,15};

/*

* source:源数组

* srcPos:源数组中的起始位置

* dest:目标数组

* destPos:目标数组中的起始位置

* length:要复制的数组元素的个数

*/

System.arraycopy(source, 1, dest, 3, 3);

for(int num:dest) {

System.out.print(num+" ");

}

}

}

课外习题

1.模拟35选7

public class Practice5 {

public static void main(String[] args) {

// 模拟35选7(没有循环嵌套)

boolean bool[] = new boolean[35];// 35个false

for(int i = 0;i < 7;i++) {

// 生成一个随机数

int random = (int)(Math.random()*35+1);// 5

if(bool[random-1]) {

i--;

continue;

}

bool[random-1] = true;

}

// for(boolean b:bool) {

// System.out.print(b+" ");

// }

for(int i = 0;i < bool.length;i++) {

if(bool[i]) {

System.out.println(i+1);

}

}

}

}

2.编写一个简单程序,要求数组长度为5,分别 赋值10,20,30,40,50,在控制台输出该数组的值。

public class HomeWork1 {

public static void main(String[] args) {

// 1、编写一个简单程序,要求数组长度为5,分别赋值10,20,30,40,50,在控制台输出该数组的值。

int arr[] = {10,20,30,40,50};

for(int num:arr) {

System.out.println(num);

}

}

}

3.给定一个有9个整数(1,6,2,3,9,4,5,7,8)的数组 ,先排序,然后输出排序后的数组的值。

public class HomeWork3 {

public static void main(String[] args) {

// 3、给定一个有9个整数(1,6,2,3,9,4,5,7,8)的数组,先排序,然后输出排序后的数组的值。

int arr[] = {1,6,2,3,9,4,5,7,8};

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.println(num);

}

}

}

4.在控制台上输入一个正整数,代表数组长度,然后向数组中输入每一个元素,然后在控制台上遍历出来。

public class Practice8 {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.println("请输入要输入几个数字:");

int num = scan.nextInt();

int arr[] = new int[num];

int index = 0;

for(int i = 0;i < num;i++) {

System.out.println("请输入第"+(i+1)+"个数字");

arr[index] = scan.nextInt();

index++;

}

for(int n:arr) {

System.out.print(n+" ");

}

}

}

5.利用数组完成此题:控制台输入一年当中的第几月多少号,输出这天是这一年的多少天。

public class Practice9 {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.println("year:");

int year = scan.nextInt();

System.out.println("month:");

int month = scan.nextInt();

System.out.println("date:");

int date = scan.nextInt();

int feb = 28;

// 闰年29天

if(year%4==0 && year%100!=0 || year%400==0) {

feb = 29;

}

int days[] = {31,feb,31,30,31,30,31,31,30,31,30,31};

int sum = 0;

for(int i = 0;i < month - 1;i++) {

sum = sum + days[i];

}

System.out.println("第"+(sum+date)+"天");

}

}

6.随机生成100个1到10的随机数,计算这些数字出现的概率。

public class Test {

public static void main(String[] args) {

int arr[] = new int[10];

for(int i = 0;i < 100;i++){

int random = (int)(Math.random()*6)+1;

arr[random-1]++;

}

for(int i = 0;i < arr.length;i++){

System.out.println(i+1+"出现的概率是"+arr[i]+"%");

}

}

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,692评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,482评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,995评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,223评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,245评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,208评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,091评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,929评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,346评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,570评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,739评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,437评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,037评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,677评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,833评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,760评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,647评论 2 354

推荐阅读更多精彩内容

  • 第四天 数组【悟空教程】 第04天 Java基础 第1章数组 1.1数组概念 软件的基本功能是处理数据,而在处理数...
    Java帮帮阅读 1,598评论 0 9
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 3,318评论 0 9
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一...
    阿里高级软件架构师阅读 3,286评论 0 19
  • 今天语文我们学了,ao,ou,iu,还学了拼读,还学了识字,莲藕,还有四声调,下午老师还让我们讲了故事。数学我们学...
    张铭轩z阅读 119评论 0 0
  • 今日在家無事。中午起床,下午看說卦集解,李道平解虞翻多誤,訂正四條。
    王好古阅读 198评论 0 1