44. {
45. all2+=arr2[i];
46. }
47. System.out.println("平均时间:
"+(all2/arr2.length));
48. }
49.}
Class5/com.test5_2/Demo5_2.java:
1./*
2. * 功能:
对象数组的使用
3. */
4.
5.package com.test1;
6.
7.import java.io.BufferedReader;
8.import java.io.InputStreamReader;
9.
10.public class Demo5_2 {
11.
12. /**
13. * @param args
14. */
15. public static void main(String[] args) throws Exception {
16. //定义一个可以存放四只狗的对象数组
17. Dog dogs[]=new Dog[4];
18. //创建一个能存放4只狗的Dog[]对象数组
19.
20. /*
21. //给各个狗赋初值
22. dogs[0]=new Dog();//将dogs[0]存放创建一只狗的空间的地址
23. dogs[0].setName("花花");
24. dogs[0].setWeight(4.5f);
25. */
26. //从控制台输入各个狗的信息
27. InputStreamReader isr=new InputStreamReader(System.in);//IO流
28. BufferedReader br=new BufferedReader(isr);//将IO流转成Buffer流
29. for(int i=0;i<4;i++)
30. {
31. dogs[i]=new Dog();
32. System.out.println("请输入第"+(i+1)+"只狗的狗名:
");
33. String name=br.readLine();//从控制台读取狗名
34. System.out.println("请输入第"+(i+1)+"只狗的体重:
");
35. String s_weight=br.readLine();//从控制台读取体重
36. float weight=Float.parseFloat(s_weight);//将String转成float类型
37. //将名字赋给对象
38. dogs[i].setName(name);
39. //将体重赋给对象
40. dogs[i].setWeight(weight);
41.
42. }
43. //计算总体重
44. float allWeight=0;
45. for(int i=0;i<4;i++)
46. {
47. allWeight+=dogs[i].getWeight();
48. }
49. //计算平均体重
50. float avgWeight=allWeight/dogs.length;
51. System.out.println("总体重="+allWeight+" 平均="+avgWeight);
52.
53. //找出体重最大的狗
54. //假设第一只狗体重最大
55. float maxWeight=dogs[0].getWeight();
56. int maxIndex=0;
57. //依次比较狗的体重
58. for(int i=1;i59. {
60. if(maxWeight61. {
62. //修改
63. maxWeight=dogs[i].getWeight();
64. maxIndex=i;
65. }
66. }
67. System.out.println("体重最大的狗是第"+(maxIndex+1)+"只狗,其体重是:
"
68. +dogs[maxIndex].getWeight());
69.
70. //输入狗的名字,查找它的体重
71. BufferedReader nam=new BufferedReader(isr);
72. System.out.println("请输入想要查找体重的狗的名字:
");
73. String dogName=nam.readLine();
74. for(int i=1;i75. {
76. if(dogName.equals(dogs[i].getName()))
77. {
78. System.out.println(dogName+"的体重是:
"+dogs[i].getWeight());
79. }
80. }
81. }
82. /*
83. * 数组总结:
84. * 1.数组可存放同一类型数据
85. * 2.简单数据类型(int,float)数组,可直接赋值
86. * 3.对象数组定义后,赋值时需要再次为每个对象分配空间[即:
new 对象]
87. * 4.数组大小 必须事先指定
88. * 5.数组名可以理解为执行数组首地址的引用
89. * 6.数组的下标是从0开始编号的
90. */
91.}
92.
93.//定义一个狗类
94.class Dog
95.{
96. private String name;
97. private float weight;
98. public float getWeight() {
99. return weight;
100. }
101. public void setWeight(float weight) {
102. this.weight = weight;
103. }
104. public String getName() {
105. return name;
106. }
107. public void setName(String name) {
108. this.name = name;
109. }
110.}
Class5/com.test1/Demo5_5.java:
1./*
2. * 功能:
二维数组
3. */
4.
5.package com.test1;
6.
7.public class Demo5_5 {
8.
9. /**
10. * @param args
11. */
12. public static void main(String[] args) {
13. int[][] a=new int[4][6];
14. a[1][2]=1;
15. a[2][1]=2;
16. a[2][3]=3;
17. //把图形输出
18. //行
19. for(int i=0;i<4;i++)
20. {
21. //列
22. for(int j=0;j<6;j++)
23. {
24. System.out.print(a[i][j]+" ");
25. }
26. System.out.print("\n");
27. }
28. }
29.}
排序与查找
排序介绍
冒泡排序
选择排序
快速排序
Class5/com.test1/Demo5_3.java:
1./*
2. * 功能:
演示各种排序法
3. */
4.
5.package com.test1;
6.import java.util.Calendar;
7.
8.public class Demo5_3 {
9.
10. /**
11. * @param args
12. */
13. public static void main(String[] args)
14. {
15. int len=10;
16. int[] arr=new int[len];
17. for(int i=0;i18. {
19. //让程序随机产生一个1-10000的数
20. //int t=(int)(Math.random()*10000);
21. int t=(int)(Math.random()*100);
22. //Math.random()会随机产生一个0~1的数
23. arr[i]=t;
24. }
25. //int arr[]={1,6,0,-1,9,2,14,24,5};
26.
27. //创建一个Bubble实例
28. Bubble bubble=new Bubble();
29. //在排序前打印系统时间
30. Calendar cal=Calendar.getInstance();//获得实例
31. System.out.print("冒泡排序前:
"+cal.getTime());
32.
33. bubble.sort(arr);//排序,通过引用修改arr数组的顺序
34.
35. cal=Calendar.getInstance();//重新获得实例
36. System.out.print("\n冒泡排序后:
"+cal.getTime());
37.
38. //输出冒泡排序后的结果,打印有序数列
39. System.out.print("\n冒泡排序的结果:
");
40. for(int i=0;i41. {
42. System.out.print(arr[i]+" ");
43. }
44.
45. int a=12;
46. bubble.test(a);//简单数据类型传到函数中,它的改变不会导致外面的修改
47. System.out.println("\n\na="+a);
48.
49. //-----------------------------------------------------
50. //创建一个Select实例
51. Select select=new Select();
52. //在排序前打印系统时间
53. cal=Calendar.getInstance();//获得实例
54. System.out.print("\n选择排序前:
"+cal.getTime());
55.
56. //排序
57. select.sort(arr);
58.
59. cal=Calendar.getInstance();//重新获得实例
60. System.out.print("\n选择排序后:
"+cal.getTime());
61.
62. //输出选择排序后的结果,打印有序数列
63. System.out.print("\n选择排序的结果:
");
64. for(int i=0;i65. {
66. System.out.print(arr[i]+" ");
67. }
68.
69. //-------------------------------------------------
70. //创建一个InsertSort实例
71. InsertSort is=new InsertSort();
72. //在排序前打印系统时间
73. cal=Calendar.getInstance();//获得实例
74. System.out.print("\n\n插入排序前:
"+cal.getTime());
75.
76. //排序
77. is.sort(arr);
78.
79. cal=Calendar.getInstance();//重新获得实例
80. System.out.print("\n插入排序后:
"+cal.getTime());
81.
82. //输出选择排序后的结果,打印有序数列
83. System.out.print("\n插入排序的结果:
");
84. for(int i=0;i85. {
86. System.out.print(arr[i]+" ");
87. }
88.
89. //-------------------------------------------------
90. //创建一个QuickSort实例
91. QuickSort qs=new QuickSort();
92. //在排序前打印系统时间
93. cal=Calendar.getInstance();//获得实例
94. System.out.print("\n\n快速排序前:
"+cal.getTime());
95.
96. //排序
97. qs.sort(0,arr.length-1,arr);
98.
99. cal=Calendar.getInstance();//重新获得实例
100. System.out.print("\n快速排序后:
"+cal.getTime());
101.
102. //输出选择排序后的结果,打印有序数列
103. System.out.print("\n快速排序的结果:
");
104. for(int i=0;i105. {
106. System.out.print(arr[i]+" ");
107. }
108. }
109.
110.}
111.
112.class Bubble
113.{
114. //测试
115. public void test(int a)
116. {
117. a++;
118. }
119.
120. //冒泡排序
121. public void sort(int arr[])
122. {
123. int temp=0;
124. //外层循环,决定一共走几趟
125. for(int i=0;i