一、数组
class ArrayDemo
{
public static void main(String[] args)
{
int[] x=new int[3];
int y[]=new int[3];
int[] arr=new int[]{3,1,5,6,4,};
}
}
Java内存结构
栈内存:数据使用完毕,会自动释放。
堆内存:数据都有默认初始值,根据数据类型确定。(0)
x=null;——x不再指向数组,值为空。
数组的操作:
获取数组中的元素,通常会用到遍历。
class arra
{
public static void main(String[] args)
{
int[] arr={3,4,7};
for(int x=0;x<3;x++)
{
System.out.println("arr["+x+"]="+arr[x]+";");
}
}
}
数组中有一个属性可以直接获取数组元素个数——length——使用方式:数组名称.length=
/*
获取数组中的最大值。
思路:
1.逐一比较。int max=arr[0];
2.将临时变量初始化为0,其实是在初始化为数组中任一角标。int max=0;
*/
二、排序——
1.选择排序
内循环结束一次,最值出现在头角标位置上。
class arry
{
public static void main(String[] args)
{
int arr[]={1,4,3,454,6,7};
for (int x=0;x<arr.length-1; x++ )
{
for (int y=x+1;y<arr.length;y++ )
{
if (arr[x]>arr[y])
{
int temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
for (int x=0;x<arr.length ;x++ )
{
System.out.println(arr[x]);
}
}
}
2.冒泡排序
相邻的两个元素比较,如果符合条件换位。
内循环结束一次,最值出现在最后位。
public static void main(String[] args)
{
int arr[]={2,43,6,7,98,6,456};
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])
{
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
for (int x=0;x<arr.length ;x++ )
{
System.out.print(arr[x]+"'");
}
}
3.Arrays.sort(arr);
4.我们可以发现无论什么排序,都需要对满足条件的元素进行位置置换。
所以可以把这部分相同的代码提取出来,单独封装成一个函数。
public static void swap(int[] arr,int a,int b)
{
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
三、查表法十进制—十六进制
查表法:将所有元素临时存储起来,建立对应关系。每一次&15后的值作为索引去查建立的表,就可以找到对应的元素。
class toHex
{
public static void main(String[] args)
{
toHex(60);
}
public static void toHex(int num)
{
char[] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
for (int x=0;x<8 ;x++ )
{
int temp=num&15;
System.out.println(chs[temp]);
num=num>>>4;
}
}
}
四、二维数组
int[][] arr=new int[3][4];//定义了名称为arr的二维数组。二维数组中有三个一维数组。
//每个一维数组中有四个元素。
int[] x,y[]; //x一维,y二维.