鱼C论坛

 找回密码
 立即注册
查看: 2367|回复: 0

[学习笔记] JAVA学习Day5【数组】

[复制链接]
发表于 2020-8-16 20:46:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 糖逗 于 2020-8-16 20:59 编辑

学习视频:https://www.bilibili.com/video/BV17J411G72L?p=20

85-101

  1. /*
  2. *数组(有限个类型相同的变量)
  3. */

  4. class test05_01{
  5.         public static void mian(String[] args){
  6.                 int[] scores = new int[2];//声明数组
  7.                 scores[0] = 99;
  8.                 scores[1] = 100;
  9.                 //打印数组的长度
  10.                 System.out.println(scores.length);
  11.         }
  12. }

  13. /*
  14. *数组初始化(1)动态初始化(2)静态初始化
  15. */


  16. class test05_02{
  17.         public static void main(String[] args){
  18.                 int[] scores;
  19.                 //静态初始化
  20.                 scores = new int[]{33, 45, 11, 87, 99, 100};
  21.                 //遍历数组
  22.                 for(int i = 0; i < scores.length; i++){
  23.                         System.out.println(scores[i]);
  24.                 }
  25.                

  26.         }
  27. }

  28. /*
  29. *静态数组内存
  30. *int[] array = {1, 3, 4, 5};其中int[]是一种数据类型,数组类型,它是一种引用数据类型
  31. *引用,表示引用一个对象,引用堆中的一块内存
  32. *java程序是在JVM中运行的,JVM中的内存主要有两块区域:栈和堆
  33. *其中栈存储局部变量(现在见到的变量都是局部变量)堆中存储的是对象
  34. *array是引用数据类型,表示引用堆中这个对象的变量,数组名中存储的是数组的首地址
  35. *
  36. *1.数组下标为什么从0开始?下标表示的是这个元素的位置距离首地址的偏移量
  37. *2.数组名中存储的是什么?数组名中存储的是数组在堆中的一整块区域的首地址
  38. *3.数组的元素如何存储?在堆中依此连续的存储
  39. */
  40. class test05_03{
  41.         public static void main(String[] args){
  42.                 int[] array = {1, 3, 4, 5};
  43.                 System.out.println(array);
  44.                 //返回的结果是 数组对象的类型@对象的hashCode编码值

  45.         }
  46. }


  47. /*
  48. *动态初始化(1)如果没有手动赋值之前,数组的元素有默认值
  49. *元素是基本数据类型
  50. *byte,short,int,long:0
  51. *float,double:0.0
  52. *char:\u0000 字符编码为0的空字符
  53. *boolean:false
  54. *元素是引用数据类型:null
  55. */

  56. class test05_04{
  57.         public static void main(String[] args){
  58.                 char[] letters;
  59.                 letters = new char[26];
  60.                 for(int i = 0; i < letters.length; i++){
  61.                         letters[i] = (char)('A' + i);
  62.                 }

  63.         }
  64. }

  65. /*
  66. *数组初始化存储(动态数组)栈存储首地址
  67. */

  68. class test05_05{
  69.         public static void main(String[] args){
  70.                 int[] array = {1, 5, 7};
  71.                 //最大值,最小值
  72.                 int max = array[0];
  73.                 for(int i = 1; i < array.length; i++){
  74.                         if(array[i] > max)max = array[i];
  75.                 }
  76.                 System.out.println("最大值是:" + max);
  77.         }
  78. }

  79. /*
  80. *数组反转(原地址不变)
  81. */
  82. class test05_06{
  83.         public static void main(String[] args){
  84.                 //(1)建立一个新数组,逆序赋值
  85.                 char[] newLetter = new char[letters.length];
  86.                 for(int i = 0; i < newLetter.length; i++){
  87.                         newLetter[i] = Letter[letters.length - 1 - i];
  88.                 }
  89.                 letters = newLetter;
  90.                 for(int i = 0; i < letters.size(); i++){
  91.                         System.out.println(letters[i]);
  92.                 }
  93.                 //(2)首尾互换
  94.                 for(int i = 0; i < lettes.length / 2; i++){
  95.                         char temp = letters[i];
  96.                         letters[i] = letters[letters.length - 1 - i];
  97.                         letters[letters.length - 1 - i] = temp;
  98.                 }
  99.         }
  100. }


  101. /*
  102. *数组复制
  103. */

  104. class test05_07{
  105.         public static void main(String[] args){
  106.                 //(1)复制一个和原来一样的数组,长度和元素
  107.                 int[] arr = {1, 2, 3, 4};
  108.                 int[] newArr = new int[arr.length];
  109.                 for(int i = 0; i < newArr.length; i++){
  110.                         newArr[i] = arr[i];
  111.                 }
  112.                 //(2)赋值一个比原来数组短的(截取)
  113.                 int[] newArr = new int[end - start + 1];
  114.                 for(int i = 0; i < newArr.length; i++){
  115.                         newArr[i] = arr[start + i];
  116.                 }
  117.                 //(3)复制一个比原来常的
  118.                 int[] newAR = new int[arr.length * 2];
  119.                 for(int i = 0; i < arr.length; i++){
  120.                         newArr[i] = arr[i];
  121.                 }
  122.                 //(4)复制一个新数组,新数组的长度有键盘输入,长度不定
  123.                 java.util.Scanner input = new java.util.Scanner(System.in);
  124.                 System.out.print("请输入新数组的长度:");
  125.                 int len = input.nextInt();
  126.                 int[] newArr = new int[len];
  127.                 for(int i = 0; i < arr.length && i < newArr.length; i++){
  128.                         newArr[i] = arr[i]
  129.                 }
  130.         }
  131. }


复制代码

内存存储

内存存储

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 13:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表