一维数组的开辟 赋值 应用
2016-06-07 22:39
309 查看
package 第十五个工程; import java.util.Scanner; public class Domo15 { public static void main(String args[]) { //System.out.println("\u03b1 \u03b2 \u03b3"); final int M = 100; //开辟一个长度为100的数组 double[] numbers = new double[M]; double sum = 0; for(int i = 0;i < M;i ++) { //随机生成0~100的浮点数 numbers[i] = Math.random() * 100; System.out.print(numbers[i] + " "); sum += numbers[i]; } System.out.println(); //求平均值 double aver = sum / M; System.out.printf("%.2f\n", aver); System.out.println(); //声明,创建,并初始化一个长度为10的数组 int[] a = {0,1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2}; //两种输出方法 for(int i : a) System.out.print(i + " "); System.out.println(); for(int i = 0;i < a.length;i ++) System.out.print(a[i] + " "); System.out.println(); //字符串数组可以用一条打印语句全部输出 char[] str = {'C','h','i','n','a'}; System.out.println(str); } }
package 第十三个工程; import java.util.*; public class Domo13 { public static void sort_1(int []a) { for(int i = 0;i < a.length;i ++) { for(int j = 0;j < a.length;j ++) if(a[j] > a[i]) { int t = a[j]; a[j] = a[i]; a[i] = t; } } } public static int[] sort_2(int []a)//注意变量的定义类型 { for(int i = 0;i < a.length;i ++) { for(int j = 0;j < a.length;j ++) if(a[j] > a[i]) { int t = a[j]; a[j] = a[i]; a[i] = t; } } return a; } public static void print_a(int []a,String str) { System.out.println(str); for(int i:a) System.out.print(i + " "); System.out.println(); } public static void change(int in,int []a) { in += 1; System.out.println(in); a[0] = 0; a[1] = 0; a[2] = 0; } public static void print(int []a) { for(int i:a) { System.out.print(i + " "); } System.out.println(); } public static void print_a(int in,int []a) { System.out.println("in = " + in); System.out.print("a :"); print(a); } public static void main(String args[]) { int []a = {1,4,7,2,5,8,3,6,9,0}; int []cc; cc = a; print_a(a,"排序前"); Arrays.sort(a); print_a(a,"排序后"); int in = 10; int []b; print_a(cc,"------"); //证明a数组的值变化同样会引起cc数组的变化 a = cc; print_a(a,"排序前"); sort_1(a); print_a(a,"排序后"); b = sort_2(a);///数组传递 print_a(b,"数组变化后"); int[] c; c = a.clone();///数组克隆,克隆的数组值发生变化不会引起原有数组的值变化 c[0] = 10; print_a(c,"克隆的数组"); if(c == a)//判断二者的地址是否相同 System.out.println("两个数组的地址相同"); else System.out.println("两个数组的地址不同"); int []d = a; if(d == a) System.out.println("两个数组的地址相同"); else System.out.println("两个数组的地址不同"); System.out.println("调用change之前 "); print_a(in,a); change(in,a); System.out.println("调用change以后"); print_a(in,a);//形参和实参没有关系,所以形参的值变化不会引起实参的值变化 } }
package 第十三个工程; public class Domo13 { //System.arraycopy进行两个数组复制的时候内存发生变化,改变一个的值另一个不会改变 //a.clone()进行两个数组复制的时候内存发生变化,改变一个的值另一个会改变 //d == a进行两个数组复制的时候内存不会发生变化,改变一个的值另一个也会改变 //使用循环语句逐个的复制数组元素,内存地址不会发生变化 public static void main(String args[]) { char s1[]={'a','b','c'}; char s2[]={'c','b','a'}; char s3[]=new char[s1.length+s2.length]; System.arraycopy(s1,0,s3,0,s1.length); System.arraycopy(s2,0,s3,s1.length,s2.length); System.out.println(s3); int []a = {1,4,7,2,5,8,3,6,9,0}; int []b = new int[a.length];//注意要复制到的数组要开辟内存 System.arraycopy(a,0,b,0,a.length); a[0] = 100; for(int i : b) System.out.print(i + " "); System.out.println(); if(b == a) System.out.println("两个数组的地址相同"); else System.out.println("两个数组的地址不同"); int[] c; c = a.clone();///数组克隆,克隆的数组值发生变化不会引起原有数组的值变化 a[0] = 80; for(int i : c) System.out.print(i + " "); System.out.println(); if(c == a)//判断二者的地址是否相同 System.out.println("两个数组的地址相同"); else System.out.println("两个数组的地址不同"); int[] d = a; a[0] = 60; for(int i : d) System.out.print(i + " "); System.out.println(); if(d == a) System.out.println("两个数组的地址相同"); else System.out.println("两个数组的地址不同"); int[] e = new int[a.length]; for(int i = 0;i < a.length;i ++) e[i] = a[i]; for(int i : e) System.out.print(i + " "); System.out.println(); if(e == a) System.out.println("两个数组的地址相同"); else System.out.println("两个数组的地址不同"); /* 程序输出 abccba 1 4 7 2 5 8 3 6 9 0 两个数组的地址不同 100 4 7 2 5 8 3 6 9 0 两个数组的地址不同 60 4 7 2 5 8 3 6 9 0 两个数组的地址相同 60 4 7 2 5 8 3 6 9 0 两个数组的地址不同 */ } }
package 第五个工程; public class Domo5 { public static void main(String args[]) { //new动态开辟的两个内存空间,所在存储位置不同 String s1 = new String("java"); String s2 = new String("java"); String s3 = s2; if(s1 == s2)//比较的是内存地址 System.out.println("s1 == s2"); else System.out.println("s1 != s2"); if(s2 == s3) System.out.println("s2 == s3"); else System.out.println("s2 != s3"); if(s1 == s3) System.out.println("s1 == s3"); else System.out.println("s1 != s3"); System.out.println(); System.out.println(); System.out.println(); if(s1.equals(s2))//equals用于对象内容的比较 System.out.println("s1 equals s2"); else System.out.println("s1 not equals s2"); if(s2.equals(s3)) System.out.println("s2 equals s3"); else System.out.println("s2 not equals s3"); if(s1.equals(s3)) System.out.println("s1 equals s3"); else System.out.println("s1 not equals s3"); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树