ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数据


  • 数组将数组中的元素转为指定格式的字符串

例子:给定数组,返回指定格式的字符串;例如:将数组{1,2,3,4}转为字符串:”[1,2,3,4]”;


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_qbytearray 转为字符数组_02


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数据_03


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数组_04

https://www.zhihu.com/video/1065370190996439040



  • 将数组中元素倒序(反转)

例子:数组{1,2,3,4,5}倒序后为{5,4,3,2,1};


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数组_05


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数组_06


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_二维数组_07


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数组_08

https://www.zhihu.com/video/1065370296873189376



数组的查找

数组查找,就是根据给定的数据,查找这个数据在数组中的位置;如果找到了,就返回相应的索引;如果没有找到,就返回-1;

  • 普通查找


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_二维数组_09


普通查找,就是通过遍历整个数组,一个一个数据的和要找的数据比较;如果有相同的数据出现,就说明在数组中存在

和要找的数据一样的数据,就可以直接返回这个数据的索引;

使用普通查找,一般找到的是数据第一次出现的位置;


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数据_10

https://www.zhihu.com/video/1065370381862498304


  • 二分查找

如果数组中的数据是有序的,就可以使用二分查找法快速查找;

有序:就是从小到大或者从大到小有规律的排列;


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数据_11


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数组_12


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数据_13


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数组_14


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数组_15

https://www.zhihu.com/video/1065370450762309632


数组的排序

  • 数组排序的概念

排序:按照一定规律,将数组中的元素从无序变为有序;

升序:就是从小往大、从低到高……

降序:和升序刚好相反

  • 选择排序

排序的算法:选择排序,冒泡排序,快速排序,归并排序;希尔排序;堆排序;插入排序;

在实际开发中,排序都已经写好了,直接调用JDK中的函数就行;

为了面试,我们掌握一种排序算法就行;

选择排序的思想,就是不断在没有排序的部分数据中,找到最小(或者最大的)数据,移到数组的前面,一直到整个数组全部有序(只剩最后一个数据没有比较的时候,数组就有序了);


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_二维数组_16

https://www.zhihu.com/video/1065370811585662976



  • Arrays数组工具介绍


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_qbytearray 转为字符数组_17


上面介绍了数组的一些练习,而针对数组的常见操作,Java已经提供好了,并书写在Arrays中。在程序中是可以直接使用的。


public class Demo {

	public static void main(String[] args) {
		// 定义数组
		int[] arr = { 23, 15, 67, 25, 90, 33 };
 
		// 打印数组
		System.out.println( Arrays.toString(arr) );
 
		// 数组排序
		Arrays.sort(arr);
 
		System.out.println( Arrays.toString(arr) );
	}
}


程序运行结果:


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_二维数组_18

https://www.zhihu.com/video/1065371024874348544



二维数组介绍

  • 什么是二维数组

数组是一种容器,可以保存多个相同类型的数据;

在内存的角度看,数组就是内存中连续在一起的多个存储空间;

如果一个数组中保存的数据的类型就是数组类型,那么数组中每个存储单元中都保存的是一个其他数组的内存地址;

这种数组的数组就叫做二维数组;


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_qbytearray 转为字符数组_19


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数据_20

https://www.zhihu.com/video/1065371149952786432



二维数组使用演示

  • 二维数组的格式
int[][] arr = new int[2][3];//表示创建一个二维数组;这个二维数组的每一个元素都是一个一维数组;
//上面声明中的数字2表示声明的二维数组的长度是2;3表示二维数组中每个一维数组的长度是3;


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数组_21


二维数组的使用


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数据_22


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数组_23


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数据_24

https://www.zhihu.com/video/1065371417675104256



数组使用总结

  • 数组的特点
  1. 数组是容器,可以保存相同类型的数据;
  2. 数组是容器,都具有容量,通过length属性获取;一个数组创建完成之后,容量大小不可改变;
  3. 数组中的元素都具有索引,索引是整数,从0开始,连续递增,最大索引是数组容量减一;
  • 数组使用场景
  1. 有多个数据要保存,数据类型一样;
  2. 数据的数量要确定;(如果不确定,就不知道创建多大的数组合适)

如果数据很多,但是数据类型不一样,或者数据总数也不确定;这个时候就要使用新的容器:集合


ctypes c_ubyte_Array_16 转为string qbytearray转字符串_数组_25