一、介绍

数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。

Java语言中提供的数组是用来存储固定大小的同类型元素。

你可以声明一个数组变量,如numbers[100]来代替直接声明100个独立变量number0,number1,....,number99。

二、笔记

1.一维数组

  1. /**
  2. * 数组:用来表示一种固定长度相同数据类型的组合
  3. *
  4. * @author HuTiger
  5. *
  6. */
  7. public class ArrayStudy {
  8.  
  9. public static void main(String[] args) {
  10.  
  11. int[] array = { 1, 2, 3, 4, 5 };// 整型数组 长度是5
  12.  
  13. String[] strs = { "AA", "BB", "CC" };// 字符串数组 长度是 3
  14.  
  15. // 数组的声明方式 : 类型和变量名
  16. int[] array1; // 最常用
  17. int array2[]; // 偶尔使用
  18. int[] array3; // 基本不用
  19.  
  20. // 数组的初始化方式:有两种
  21. /*
  22. * 静态初始化:必须在声明的时候进行初始化
  23. */
  24. //int[] array = { 1, 2, 3, 4, 5 };
  25.  
  26. /*
  27. * 动态初始化:必须与new关键字一起使用,需要指定固定长度
  28. */
  29. // String[] strs = null;
  30. // strs=new String[5];
  31.  
  32. // String[] strs=new String[5];
  33.  
  34. /*
  35. * 动态初始化的时候,数组中的每个元素的值是对应的数据类型的默认值
  36. */
  37. // int[] array4=new int[5];
  38. // System.out.println(array4[1]);
  39. // System.out.println(array4[2]);
  40. // System.out.println(array4[3]);
  41. //
  42. // String[] str1=new String[5];
  43. // System.out.println(str1[1]);
  44. // System.out.println(str1[2]);
  45. // System.out.println(str1[3]);
  46.  
  47. /*
  48. * byte short int long float double boolean char 引用数据类型
  49. * 0 0 0 0 0.0 0.0 false \u0000 null
  50. */
  51.  
  52. /*
  53. * 获取数组中元素的值:可以通过他的下标索引来获取到对应位置的元素的值。下标是从0开始
  54. * 数组的长度:可以通过array.length 属性获取。ps:长度是属性
  55. */
  56. int[] arrays={9,4,5,5,4,4};
  57. System.out.println(arrays[0]);
  58. //获取数组的长度
  59. System.out.println(arrays.length);
  60.  
  61. //通过数组的下标对数组中对应位置的元素进行赋值
  62. arrays[1]=10;
  63. System.out.println(arrays[1]);
  64.  
  65. String str="adsfvg";
  66. //获取字符串的长度是通过方法来获取的
  67. System.out.println(str.length());
  68.  
  69. int[] longarray={8,7,4,2,0,4,8,6,2,0,1,5,0,0,10};
  70. for (int i = 0; i < longarray.length; i++) {
  71. System.out.print(longarray[i]+" ");
  72. }
  73. System.out.print("\n");
  74. /*
  75. * 使用while循环输出
  76. * 数组的最大index为 length-1
  77. */
  78. int i=0;
  79. while(i<longarray.length)
  80. {
  81. System.out.print(longarray[i]+" ");
  82. i++;
  83. }
  84. }
  85. }

2.二维数组

  1. package com.hgd.study3;
  2.  
  3. /**
  4. * 二维数组:
  5. * 如何创建二维数组
  6. * 二维数组的遍历
  7. * @author HuTiger
  8. *
  9. */
  10. public class ErWeiArray {
  11.  
  12. public static void main(String[] args) {
  13.  
  14. //静态初始化
  15. int[][] array={{1,2,3},{1,2,3},{3,2,1},{3,2,1}};
  16.  
  17. for (int i = 0; i < array.length; i++) {
  18. for (int j = 0; j < array[i].length; j++) {
  19. System.out.print(array[i][j]);
  20. }
  21. System.out.println("\n");
  22. }
  23.  
  24. //动态初始化,需要对数组中的每一个元素进行动态初始化
  25. int[][] arrays=new int[5][];
  26. System.out.println(arrays.length);
  27. System.out.println(arrays[0]);
  28. array[0]=new int[3];
  29. System.out.println(arrays[0]);
  30.  
  31. }
  32. }

3.数组练习

  1. package com.hgd.study3;
  2.  
  3. import java.awt.geom.FlatteningPathIterator;
  4.  
  5. import javax.swing.text.StyledEditorKit.ForegroundAction;
  6.  
  7. /**
  8. * 排序
  9. *
  10. * @author HuTiger
  11. *
  12. */
  13. public class ArrayPratice {
  14. public static void main(String[] args) {
  15.  
  16. }
  17. /*
  18. * 冒泡排序法
  19. */
  20. private static void MaoPao() {
  21.  
  22. int[] array = { 7, 5, 9, 1, 3, 6 };
  23. for (int i = 0; i < array.length; i++) {
  24. for (int j = i + 1; j < array.length; j++) {
  25. int tmp = 0;
  26. if (array[i] > array[j]) {
  27. tmp = array[i];
  28. array[i] = array[j];
  29. array[j] = tmp;
  30. }
  31. }
  32. }
  33. for (int i = 0; i < array.length; i++) {
  34. System.out.print(array[i] + " ");
  35. }
  36. }
  37.  
  38. /*
  39. * 求{2,1,6,5,4}最大值最小值平均值
  40. */
  41. private static void GetMaxMinAvg() {
  42. int[] array = { 2, 2, 3, 4, 6 };
  43. int max = array[0];
  44. int min = array[0];
  45. int sum = 0;
  46. for (int i = 0; i < array.length; i++) {
  47. sum += array[i];
  48. if (array[i] > max) {
  49. max = array[i];
  50. }
  51. if (min > array[i]) {
  52. min = array[i];
  53. }
  54. }
  55. System.out.println("最大值:" + max);
  56. System.out.println("最小值:" + min);
  57. System.out.println("平均值:" + (float) sum / array.length);
  58. }
  59.  
  60. /*
  61. * 现在有如下一个数组:int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,,7,6,7,0,5};
  62. * 要求将以上数组中的0去掉,将不为0的值存入一个新的数组,新的数组为:int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5}
  63. */
  64. private static void RemoveZero() {
  65. int oldArr[] = { 1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5 };
  66. int[] tmparry = new int[oldArr.length];
  67. int[] newArr;
  68. int k = 0;
  69. int count = 0;
  70. for (int i = 0; i < oldArr.length; i++) {
  71. if (oldArr[i] != 0) {
  72. tmparry[k] = oldArr[i];
  73. count++;
  74. k++;
  75. }
  76. }
  77. newArr = new int[count];
  78. for (int i = 0; i < newArr.length; i++) {
  79. newArr[i] = tmparry[i];
  80. }
  81. for (int i = 0; i < newArr.length; i++) {
  82. System.out.print(newArr[i] + " ");
  83. }
  84.  
  85. }
  86.  
  87. /*
  88. * 去除重复数组元素
  89. */
  90. private static void RemoveRepeat() {
  91. int[] array = { 1, 1, 1, 2, 3, 3, 4 };
  92. int lengt = 0;
  93. int count = 1;
  94. for (int i = 0; i < array.length; i++) {
  95. int l = i, r = i;
  96. while (--i >= 0) {
  97. if (array[i] == array[l]) {
  98. count++;
  99. break;
  100. }
  101.  
  102. }
  103. while (++r <= array.length - 1) {
  104. if (array[i] == array[r]) {
  105. count++;
  106. }
  107. }
  108. if (count == 1) {
  109. lengt++;
  110. }
  111. }
  112. int[] newArr = new int[lengt];
  113. int index = 0;
  114. for (int i = 0; i < array.length; i++) {
  115. int l = i, r = i;
  116. while (--i >= 0) {
  117. if (array[i] == array[l]) {
  118. count++;
  119. }
  120.  
  121. }
  122. while (++r <= array.length - 1) {
  123. if (array[i] == array[r]) {
  124. count++;
  125. }
  126. }
  127. if (count == 1) {
  128. lengt++;
  129. }
  130. }
  131. }
  132.  
  133. private static void RemoveRepeat2() {
  134. int oldArr[] = { 2, 0, 3, 2, 9, 0 };
  135. int lengh = 0;
  136. int a = 0;
  137. int aIndex = -1;
  138. int count=0;
  139. for (int i = 0; i < oldArr.length; i++) {
  140. if (oldArr[i] == a) {
  141. aIndex = i;
  142. break;
  143. }
  144. }
  145. for (int i = 0; i < oldArr.length; i++) {
  146. for (int j = i + 1; j < oldArr.length; j++) {
  147. if (oldArr[i] == oldArr[j] && oldArr[j] != a) {
  148. oldArr[j] = a;
  149.  
  150. }
  151. }
  152. if(oldArr[i]==a)
  153. {
  154. count++;
  155. }
  156. }
  157. lengh=aIndex==-1?oldArr.length-count:oldArr.length-count+1;
  158. int[] newArr=new int[lengh];
  159. int index=0;
  160. for (int i = 0; i < newArr.length; i++) {
  161. if(oldArr[i]!=a||i==aIndex){
  162. newArr[index]=oldArr[i];
  163. index++;
  164.  
  165. }
  166. }
  167.  
  168. }
  169.  
  170. }

Java学习笔记之:Java数组的更多相关文章

  1. Java学习笔记十:Java的数组以及操作数组

    Java的数组以及操作数组 一:什么是数组: 数组可以理解为是一个巨大的“盒子”,里面可以按顺序存放多个类型相同的数据,比如可以定义 int 型的数组 scores 存储 4 名学生的成绩 数组中的元 ...

  2. Java 学习笔记(4)——java 常见类

    上次提前说了java中的面向对象,主要是为了使用这些常见类做打算,毕竟Java中一切都是对象,要使用一些系统提供的功能必须得通过类对象调用方法.其实Java相比于C来说强大的另一个原因是Java中提供 ...

  3. Java学习笔记之—Java基础

    将学习到的JAVA基础用xmind记录了下来,需要原件的可以私信

  4. Java学习笔记--通过java.net.URLConnection发送HTTP请求

    http://www.cnblogs.com/nick-huang/p/3859353.html 使用Java API发送 get请求或post请求的步骤: 1. 通过统一资源定位器(java.net ...

  5. java 学习笔记1 java语言概述及开发环境

    高级语言运行机制 高级语言按程序的执行方式分为编译型和解释型两种. java语言比较特殊,Java程序的执行必须经过先编译后解释的步骤. 1 编译生成字节码,只面向JVM(.class) 2Jvm执行 ...

  6. Java 学习笔记 (三) Java 日期类型

    以下内容摘自:  https://www.cnblogs.com/crazylqy/p/4172324.html import java.sql.Timestamp; import java.text ...

  7. JAVA学习笔记之JAVA 对象引用以及赋值

      关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用, 那实在没 ...

  8. 8.4(Java学习笔记)java脚本引擎(Rhino)

    一.java脚本引擎 java脚本引擎是沟通java和脚本语句之间的桥梁,可以通过对应的脚本引擎在java中调用各种脚本语言. 二.脚本引擎执行脚本代码 ScriptEngineManager:为Sc ...

  9. Java学习笔记51:数组转ArrayList和ArrayList转数组技巧

    ArrayList转数组: public class Test { public static void main(String[] args) { List<String> list = ...

  10. Java学习笔记3(数组)

    1.数组的定义: 第一种: public class ArrayDemo{ public static void main(String[] args){ //定义数组 int [] arr = ne ...

随机推荐

  1. 分享:Perl打开与读取文件的方法

    在Perl中可以用open或者sysopen函数来打开文件进行操作,这两个函数都需要通过一个文件句柄(即文件指针)来对文件进行读写定位等操作. Perl打开与读取文件的方法,供大家学习参考.本文转自: ...

  2. oracle中的存储过程例子

    用了两年Oracle还没写过存储过程,真是十分惭愧,从今天开始学习Oracle存储过程,完全零起点,争取每日一篇学习笔记,可能开始认识的不全面甚至有错误,但坚持下来一定会有收获. . 建立一个存储过程 ...

  3. 【面试虐菜】—— Apache知识整理

    Apache性能调优1 Apache 部分:1. 移除不用的模块.2. 使用 mod_disk_cache NOT mod_mem_cache .3. 扁平架构配置mod_disk_cache.4.  ...

  4. zendframework 事件管理(二)

    首先需要明确的几个问题: Q1.什么是事件? A:事件就是一个有名字的行为.当这个行为发生的时候,称这个事件被触发. Q2.监听器又是什么? A:监听器决定了事件的逻辑表达,由事件触发.监听器和事件往 ...

  5. Error NO.2013 Lost connection to Mysql server during query

    系统:[root@hank-yoon ~]# cat /etc/redhat-release CentOS release 6.3 (Final) DB版本:mysql> select @@ve ...

  6. 《C# 白话系列之——白话委托》读后记

    今天在博客圆首页看到一篇文章:<C# 白话系列之——白话委托> http://www.cnblogs.com/djangochina/p/3410002.html#commentform ...

  7. Apache网站根目录

    Apache环境配置好了,把项目放到网站根目录下的htdocs文件夹下,运行网站的时候不需要加上该文件夹的名称,Apache直接在上面找对应的项目

  8. ASP.NET MVC +EasyUI 权限设计(四)角色动作

    请注明转载地址:http://www.cnblogs.com/arhat 由于最近的事情比较多,一直忙于工作和照顾老婆,所以老魏更新的速度慢了,本来写文章就要占据工作和生活很多的时间,这也就是院子中很 ...

  9. 二分查找or折半查找

    package com.gxf.search; /** * 测试折半查找or二分查找 * @author xiangfei * */ public class BiSearch { /** * 非递归 ...

  10. Swift和OC,是编译型语言、解释性语言、运行时语言

    首先需要明确的一点是,什么是编译型语言和解释性语言 编译型语言,就是在其执行过程中需要先将其经过编译成机器码来给计算机识别的,其执行效率就会比较高这个是显而易见的,常见比如:C.C++ 而解释型语言, ...