前言:通过对Java的了解和认识,针对于Java基础一块做些简单的总结;Java是一种面向对象的变成语言(强类型语言)。
一:数组:引用数据类型,数组一旦定义,不可更改(空间大小,类型)。
(注:除了八中基本数据类型之外的,都叫做引用数据类型)。
1、数组的定义:
(a):int[] arr=new int[10];
在内存中开辟长度为10的int类型的数组。
这种定义方式,没有默认值,需要在定义的同时初始化。
注意:不要在new关键字中括号里写所谓的数组长度。
(b):int[] arr1=new int []{1,23,5}; //这种定义方式,没有默认值,需要在定义的同时初始化。
(c):int[] arr2={2,3,45}; //直接定义数组类型,向里面添加元素。
结合循环应用:
/**
* 数组的方法
* @author Administrator
*随机产生长度为7的int类型不重复的数组(1-99)
*/
public class Demo01 {
public static void main(String[] args) {
//产生随机数方法
Random rd=new Random();
int[] arr=new int[7];
//开关思想
boolean[] b=new boolean[100];
for(int i=0;i<arr.length;i++){
while(true){
int a=rd.nextInt(100)+1;
if(b[a]==false){
arr[i]=a;
b[a]=true;
break;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
2、数组的常用方法:
(a):数组的复制:System.arraycopy(src, srcPos, dest, destPos, length);
src:原数组
srcPos:源数组起始的位置
dest:目标数组
destPost:目标数组起始的位置
length:要复制的个数
(b)数组的缩容和扩容: Arrays.copyOf(original, newLength);
original:被改变的数组名
newLength:改变后的数组长度
数组复制、扩,缩容代码演示:
public class Demo02 {
public static void main(String[] args) {
//调用方法method2();
Demo04.method2();
}
//数组的复制 将一个数组中的某几个元素,复制到另外一个数组中
public static void methodl(){
//将arr数组从第0为开始复制,复制3个元素到
//arr1中,从arr1的1号位开始,最后输出arr1
int[] arr=new int[]{10,20,30,40};
int[] arr1=new int[4];
System.arraycopy(arr, 0, arr1, 1, 3);
System.out.println(Arrays.toString(arr1));
}
// 数组扩容和缩容
public static void method2(){
//将长度为3的arr数组,扩容到长度为6
//将长度为6的arr数组,缩容到长度为4
int[] arr=new int[]{1,2,3};
/*
* 如果newlength的长度大于源数组的长度,则为扩容,多余的值为数组类型的默认值.
* 如果newlength的长度小于源数组的长度,则为缩容,截取源数组的长度
* 为newlength的元素个数(取值为源数组的前newlength位数)
*
* 数组一旦定义则不可更改(空间大小,类型)
* 数组的扩容和缩容,实际上是在堆内存中重新建立一个新数组,即:"假的扩容和缩容"
*/
arr=Arrays.copyOf(arr, 6);//扩容
System.out.println(Arrays.toString(arr));
arr=Arrays.copyOf(arr, 4);//缩容
System.out.println(Arrays.toString(arr));
数组冒泡排序法:
冒泡排序,上浮和下沉 升序排序。
注意:
1.根据数组的元素个数确定要排序几轮
2.每轮要进行几次数据交换
冒泡排序代码演示:
public class Demo03 {
public static void main(String[] args) {
//初始化长度为7的int类型的数组
int[] arr=new int[]{6,1,2,7,61,3,13};
//要排序几轮
for(int i=0;i<=arr.length-1;i++){
//每轮要排几次
for(int j=0;j<arr.length-1-i;j++){
//定义排序规则
if(arr[j]>arr[j+1]){
//数据位置交换
int temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
//输出打印
System.out.println(Arrays.toString(arr));
}
}