本帖最后由 695010894 于 2016-3-24 23:24 编辑
我单独拿出来新建一个java文件又可以了出结果,半天没搞懂 什么原因。。- class BubbleTest
- {
- //打印排好序的数组。
- public static void printarr(int[] arr)
- {
- System.out.print("[");
- for (int x=0; x<arr.length ;x++)
- {
- if (x!=arr.length-1)
- System.out.print(arr[x]+", ");
- else
- System.out.print(arr[x]+"]");
- }
- }
- /*位置置换功能抽取*/
- public static void swap(int[] arr,int a, int b)
- {
- int temp = arr[a];
- arr[a] = arr[b];
- arr[b] = temp;
- }
- /*
- 定义一个函数比较,输入输出为数组的角标,利用循环嵌套使相邻元素进行比较
- */
- public static void bubble(int[] arr)
- {
- for (int x =0; x <arr.length-1; x++ )
- {
- for (int y =0; y <arr.length-x-1; y++ )
- {
- if (arr[y] > arr[y+1])
- {
- swap(arr, y, y+1);
- //int temp=arr[y];
- //arr[y]= arr[y+1];
- //arr[y+1]=temp;
- }
- }
- }
- return;
- }
- public static void main(String[] args) //主函数调用,进行冒泡排序。
- {
- int[] arr={2,4,5,1,6,10,32,21,7,5};
- printarr(arr);//排序前
- System.out.println();
- bubble(arr);//排序
- printarr(arr);
- }
- }
- //数组的查找
- class ArrayTest1
- {
- public static void main(String[] args)
- {
- //查找函数的调用。
- int[] arr={2,4,5,1,6,10,32,21,7,5};
- int index=getIndex(arr,6);
- System.out.println("index="+index);
- }
- //查找函数。
- public static int getIndex(int[] arr, int key)
- {
- for (int x=0; x<arr.length; x++ )
- {
- if (arr[x]==key)
- return x;
- }
- return -1;//该key在数组中不存在。
- }
- }
- //折半查找。
- /*
- 效率比较高,但是必须保证该数组是有序的。
- */
- class ArrayTest2
- {
- public static void main(String[] args)
- {
- int[] arr={1,3,4,5,7,8,9,11,23,25};
- int index=halfsearch(arr,9);
- System.out.println("index="+index);
- }
- public static int halfsearch(int[] arr, int key)
- {
- int min,mid,max;
- min=0;
- max=arr.length-1;
- mid=(min+max)/2;
- while (arr[mid]!=key)
- {
- if (key>arr[mid])
- min=mid+1;
- else if (key<arr[mid])
- max=mid-1;
- else if(min>max)
- return -1;
- mid=(max+min)/2;
- }
- return mid;
- }
- }
- //进制转化,二进制。
- class ArrayTest3
- {
- public static void main(String[] args)
- {
- toHex(60);
- }
- public static void trans(int num,int base, int offset) //进制转换函数。
- {
- if(num==0)
- {
- System.out.println(0);
- return ;
- }
- char[] chs={'0','1','2','3'
- ,'4','5','6','7'
- ,'8','9','A','B'
- ,'C','D','E','F'};
- char[] arr=new char[32];
- int pos=arr.length;
- while (num!=0)
- {
- int temp = num & base;
- arr[--pos] = chs[temp];
- num = num>>>offset;
- }
- for (int x=pos; x<arr.length; x++)
- {
- System.out.print(arr[x]);
- }
- }
- //二进制
- public static void toBin(int num)
- {
- trans(num,1,1);
- }
- //八进制
- public static void toBa(int num)
- {
- trans(num,7,3);
- }
- //16进制
- public static void toHex(int num)
- {
- trans(num,15,4);
- }
- }
- //问题,为什么ArrayTest1,ArrayTest2都能加载而ArrayTest3无法加载?
复制代码
解决了:是我之前添加了class ArrayTest3在BubbleTest.java 文件中,保存后他给我生成了一个BubbleTest.java.bak并且保存在里面,结果就是上描述的问题,这个ArrayTest3根本没保存在BubbleTest.java中,所以无法加载。。 |
|