1.基本数据类型元素的数组-(静态)
byte,short,int,long,flaot,double,char
格式:
数据类型[] array=new 数据类型[n];//默认初始化为0
或
数据类型[] array=new 数据类型[]{x1,x2,x3,x4};
特别注意char的是单引号
2.基本数据类型的封装类型的数组-API-(动态)
// 创建集合
ArrayList<String> sites = new ArrayList<String>();//
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Zhihu");
for-each只能打印内容,不能输出索引同迭代器
举例:
for(String str:strList) {
System.out.print(str);
}
2.1记:正如其名(英文名)
ArrayList 和 LinkedList 的最明显的区别:
ArrrayList底层的数据结构是数组,支持随机访问。
LinkedList 的底层数据结构是双向循环链表,不支持随机访问。
底层数据结构笔记后面写。
2.2内存计算
Character.SIZE=8,为bit数
求字节数为Character.SIZE/8;
其他基本数据类型的类似取用;
求内存大小就是=长度*相应封装基本数据类型的值/8B(字节)
长度*相应封装基本数据类型的值bit
3.引用数据类型的数组以及串
数组
格式:
String
串
StringBuilder(静态)
StringBuffer(动态)
String[] array=new String[n];
StringBuilder sbd= new StringBuilder(n);
StringBuffer sBuffer = new StringBuffer("a");
sBuffer.append("b");
...
引用数据类型 的比较内容为.equals
串的是charAt(i)==’x‘;
4.数组的介绍
* 数组的概念:可以看做是一个容器,用来装很多东西
* 可以存储一组相同数据类型的容器,开辟一组连续相同的空间用来存储相同类型的数据
* 一个班级有20个人
* String s = "";
* int b = 330;
* int a = 10;
*
* 栈区 -- 普通/局部变量
* 堆区 -- 对象--成员变量
* 方法区/永久区
*
*
* 数组的定义的几种方式:
* 1.边声明边指定长度
* 类型[] 数组名 = new 类型[指定长度];
* 例如:int[] array = new int[10];
* 2.快速声明和赋值
* 类型[] 数组名 = {值1,值2,值3....};
* 例如:int[] array = {10,20,30};
* 3.边声明边赋值
* 类型[] 数组名 = new 类型[]{值1,值2,值3,...};
* 例如:int[] array = new int[]{10,20,30};
*
* 数组的特点:
* 1.数组是有索引/下标的,从0开始
* 2.数组是引用数据类型
* 3.只能存储一组相同的数据类型的元素,不能存储不同类型的数据
* 4.数组的长度是固定不变的
* 5.不能访问超出数组定义的长度范围
* 6.不能给超过数组的长度进行赋值
* 7.数组是存储在堆区中的,所以系统会赋予默认值
* int 0
* double 0.0
* char \u0000
* boolean false
* String null
* 8.可以定义任意类型的数据,引用类型/基本类型
* 9.数组不能(用数组名)二次赋值,用数组名带索引才可
*
*
* 数组的遍历:
*
* 数组的赋值:
* 数组名[下标] = 值1;
* array[0] = 10;
* 静态赋值法:直接赋值
* 动态赋值法:通过用户输入赋值
*
* 数组的属性:length长度
* 数组的使用:
* 数组名[下标]
* 数组工具类:Arrays
* 用来方便进行操作数组提供的一个工具类,JavaAPI
* 数组-排序,查找,拷贝,遍历
5.常用API-Arrays.方法
* Arrays类名.方法名();
* static int binarySearch(int[] a, int key) 二分查找方法,直接指定查找某个元素
*static int binarySearch(int[] a, int fromIndex, int toIndex, int key) 从指定位置范围查找元素
*static int[] copyOf(int[] original, int newLength) 复制几个元素,成为一个新的数组
* static int[] copyOfRange(int[] original, int from, int to)复制指定范围的元素
* static void fill(int[] a, int val)填充值到数组中
*static void fill(int[] a, int fromIndex, int toIndex, int val)填充值到指定范围的数组中
* static void sort(int[] a)从小到大的排序
* static void sort(int[] a, int fromIndex, int toIndex) 从指定范围做一个排序
* static String toString(int[] a) 转成字符串的形式输出每个元素
API下载