数据结构——数组

数组特点

  1. 长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
  2. 其元素必须是相同类型,不允许出现混合类型。
  3. 数组类型可以是任何数据类型,包括基本类型和引用类型。

数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中存储的。

数组声明

type[] a;/建议使用这种
type a[];

数组初始化

int[] a={1,2,3};/静态初始化
int[] a=new int[2];
a[0]=1;
a[1]=2;/动态初始化

默认初始化

int[] a=new int[2];/默认{00}
boolean[] b=new boolean[2];/{false,false}
String[] s=new String[2];/{null,null}

数组的长度
数组名.length,下标的合法区间[0,数组名.length-1]。

数组拷贝

static void arraycopy(object src,int srcpos,object dest, int destpos,int length)

数组扩容

int[] a={1,2,3};
int[] b=new int[a.length*2];
System.arraycopy(a,0,b,0,a.length);//第一种
int[] c=java.util.Arrays.copyOf(a,a.length*2);

数组增删

public class TestArrayCopy {
 int i;
 public static void main(String[] args) {
  String[] s3= {"天","地","玄","黄"};
  removeElment(s3,1);
  extendRange(s3);
  testBasicCopy();
 }
 public static void testBasicCopy() {
  String[] s1= {"aa","bb","cc","dd","ee"};
  String[] s2=new String[5];
  System.arraycopy(s1, 2, s2, 1,s1.length);
  for(int i=0;i<s1.length;i++) {
   System.out.println(i+"--"+s2[i]);
  }
 }
 //删除元素,输入删除数据的位置
 public static String[] removeElment(String[] s,int index) {
  int i;
  System.arraycopy(s, index+1, s, index, s.length-index-1);
  for(i=0;i<s.length;i++) {
   System.out.println(i+"--"+s[i]);
  }
  return s;
  }
//扩容数组
 public static String[] extendRange(String[] str) {
  String[] str2=new String[str.length+10];
  System.arraycopy(str, 0, str2, 0, str.length);
  for(String temp:str2) {
   System.out.println(temp);
  }
  return str2;
 }
}

java.util.Arrays工具

 System.out.println(Arrays.toString(a)); //输出数组元素
 Arrays.sort(a);//数组排序
 System.out.println("该元素的索引:"+Arrays.binarySearch(a, 12)); //二分法查找
  Arrays.fill(a, 2, 4, 100);  //数组填充,将2到4索引的元素替换为100;

冒泡

public static void maopao(int[] a){
	int temp;
	for(int i=0;i<a.length;i++){
		for(int j=0;j<a.length-1-i;j++){
			if(a[j]<a[j+1]){
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
				}
			}
		}
	}
			

二维数组声明

type[][]arr_name=new type[length][];      
type arr_name[][]=new type[length][length]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值