A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 传奇查 于 2015-11-21 10:38 编辑

觉得对你有用就给个鼓励吧~~
数组概念和遍历:
  1. * 数组概念:同一种类型数据的集合,其实,数组就是一个容器.
  2. * 好处:可以自动给数组的元素从0开始编号,方便操作这些元素.
  3. * 格式1:元素类型[] 素组名 = new 元素类型[元素个数或数组长度]
  4. *                 int [] arr = new int[5];
  5. * 格式2:元素类型[] 数组名 = new 元素类型[]{元素1,元素2,元素3,....元素n};
  6. *                 int[] arr = new int[]{3,5,7,9,0};
  7. *   或者int[] arr = {1,2,3,4,5,6}
  8. * 内存划分:1.寄存器 2.本地方法区 3.方法区
  9. * 4.栈内存 用于存储局部变量,当变量所属的作用域一旦结束,所占空间会自动释放.
  10. * 5.堆内存 数组和对象,通过new建立的实例都存放在堆内存中.
  11. * */
  12. public class ArrayDemo {

  13.         public static void main(String[] args) {
  14.                 int[] arrays = {23,34,15,64,678,342,533,234,2,9,-999};
  15.                 printArrays(arrays);
  16.                 xuanZe(arrays);
  17.                 xuanZeJiaoBiao(arrays);
  18.                 bubble(arrays);
  19.                 Arrays.sort(arrays);
  20.                 printArrays(arrays);
  21.                 arrayDemo(arrays);
  22.                 getMax(arrays);
  23.         }
  24.         public static void arrayDemo(int[] arr){
  25.                 //int[] arr = new int[]{1,2,3,4,5};
  26.         //        System.out.println(arr);//[I@170a6001
  27.                 //[I 表示int类型的数组,@后面是该素组的初始地址哈希值
  28.                 for (int i = 0; i < arr.length; i++) {
  29.                         System.out.println(arr[i]);
  30.                 }
  31.         }
  32.         public static void getMax(int[] arrays){
  33.                 int max = 0;
  34.                 for (int i = 0; i < arrays.length; i++) {
  35.                         max = arrays[i] > max ? arrays[i]:max;
  36.                 }
  37.                 System.out.println(max);
  38.         }
  39.         //排序问题:
  40.         //选择排序:用第一个元素依次和后面的元素做比较,确定第一位最小,然后拿第二个和后面的依次比较
  41.         //采用选择排序--基本方法
  42.         public static void xuanZe(int[] arr){
  43.                 for (int x = 0; x < arr.length-1; x++) {        
  44.                         for (int y = x+1;y < arr.length; y++) {
  45.                                 if(arr[x]>arr[y]){
  46.                                         int temp = arr[x];
  47.                                         arr[x] = arr[y];
  48.                                         arr[y] = temp;                                
  49.                                 }
  50.                         }
  51.                 }        
  52.         }
  53.         //遍历方法
  54.         public static void printArrays(int[] array){
  55.                 System.out.print("[");
  56.                 for (int i = 0; i < array.length; i++) {
  57.                         if( i < array.length-1){
  58.                         System.out.print(array[i]+",");
  59.                         } else {
  60.                                 System.out.println(array[i]+"]");
  61.                         }
  62.                 }
  63.         }
  64.         //选择排序之角标记录法
  65.         public static void xuanZeJiaoBiao(int[] arrays){
  66.                 for (int i = 0; i < arrays.length-1; i++) {
  67.                         int index = i;
  68.                         int min = arrays[i];
  69.                         for(int j = i+1 ; j<arrays.length;j++){
  70.                                 if(arrays[j]<min){
  71.                                         min = arrays[j];//获取到本循环数组最小值min
  72.                                         index = j;//本循环结束后获取到整个数组最小值的索引j
  73.                                 }
  74.                                 if(i != index){
  75.                                         replace(arrays,i,index);
  76.                                 }               
  77.                         }
  78.                 }
  79.         }
  80.         //替换arrays[i]
  81.         public static void replace(int[] arrays,int i,int index){
  82.                 int temp = arrays[i];
  83.                 arrays[i] = arrays[index];
  84.                 arrays[index] = temp;
  85.         }
  86.         //冒泡排序:第一轮:从第一个元素到倒数第二个元素依次向右比较,把最大数挪到最右边.
  87.         //       第二轮:从第二个元素到倒数第三个元素依次向右比较,把第二大数挪到倒数第二.
  88.         public static void bubble(int[] arr){
  89.                 for (int j = 0; j < arr.length-1; j++) {
  90.                         for (int i = 0; i < arr.length-j-1; i++) {
  91.                                 if(arr[i]>arr[i+1]){
  92.                                         int temp = arr[i];
  93.                                         arr[i] = arr[i+1];
  94.                                         arr[i+1] = temp;
  95.                                 }
  96.                         }
  97.                 }
  98.         }
  99. }
复制代码
输出结果:

程序运行的结果为:

[23,34,15,64,678,342,533,234,2,9,-999]
[-999,2,9,15,23,34,64,234,342,533,678]
-999
2
9
15
23
34
64
234
342
533
678
678

觉得对你有用就给个鼓励吧~~

评分

参与人数 1黑马币 +2 收起 理由
耀阳圣尊 + 2

查看全部评分

8 个回复

倒序浏览
谢谢分享
回复 使用道具 举报
谢谢分享~
回复 使用道具 举报
66666666666666666666
回复 使用道具 举报
学霸你好,学霸再见
回复 使用道具 举报
今天刚刚学习了数组,看到楼组的总结又稍稍复习了一遍,下边的排序问题可能明天老师要讲,提前预习一下哈。谢谢了
回复 使用道具 举报
最好不要用拼音,会养成不好的习惯
回复 使用道具 举报
隔壁马良 发表于 2015-11-21 00:22
最好不要用拼音,会养成不好的习惯

O(∩_∩)O谢谢!
回复 使用道具 举报
复写了{:2_36:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马