如何学习java?:[6]数组的定义及使用?
一维数组
1、数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组。目的是便于管理数据和方便声明。
2、数组声明的格式是:数据类型 数组名 。
3、数组的赋值方法有三种。第一种,直接赋值。第二种,new赋值第三种,赋空值。
二维数组
1、如果说可以把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格。
2、静态初始化: 数据类型 数组名[][] ;第一种:数组名 = new 数据类型[行的个数][列的个数] ;第二种:数组名 = {一维数组;一位数组;。。。。};注意分号。
3、使用静态初始化声明一个二维数组。
多维数组
1、经过前面一、二维数组的练习后不难发现,想要提高数组的维数,只要在声明数组的时候将索引与中括号再加一组即可,所以三维数组的声明为int score[][][],而四维数组为int score[][][][] …,以此类推。
JAVAString数组?
Java数组是在Java编程中经常使用的一个类,下面是对Java数组String的使用方法:
1、Java数组的语法: String[数组下标], Java数组的下标是从0开始的。
2、获取数组中的所有元素,会用到数组的遍历,通常用for循环。
3、输出打印数组中的所有元素,并用“,”分隔。
4、可使用定义三个字符串k,p,f和t为第几个字符串。
5、可以使用Arrays类中binarySearch(Object[] a, Object key) 方法来查找是否存在某个值。
JAVA编程:给出一个字符数组,按从小到大排序?
这就是一个最基本的冒泡排序,
for(int i = 0; i < s.length; i++) { //外层循环控制比较的轮数
for(int j = i+1; j < s.length; j++) {//里层循环控制没轮比较的次数,每轮比较的次数都要少一个,
if( s[i] > s[j] ) {//判断当前位置是值和后一个位置的值,如果大于就换位置
char c = s[i]; //最基本的换位置的做法
s[i] = s[j];
s[j] = c;
}
}
}
java中有按字节读取的InputStream和按字符读取的Reader,那有没有按比特bit读取的?
这个肯定是有的。电脑上所有的数据其实都是用字节(byte)来表示的,字节是所有数据的基础,读取字节是io中最基本的一个功能。java中inputstream就是可以直接读取字节的。inputstream中read()方法就是读取读取单个字节的,而read(byte[])是读取一个字节数组的。
java的io组成如下
由上图可见inputstream是输入流的一个基类,java中是不能直接创建一个基类的,所以要获取一个inputstream只能生成一个具体的实现类,例如fileinputstream(文件输入流)。java io中采用了装饰器模式(体现在类的构建器上),通过装饰器可以使装饰类增加额外的功能。例如你想按一个int或者long来读取数据,那你可以使用datainputstream来读取,用一个inputstream来构建一个datainputstream中就可以了。
JAVA的IO流读取可以分为两种流读取:
1、字节流:可以用于读写二进制文件及任何类型文件
2、字符流:可以用于读写文本文件,不能操作二进制文件
其中字节流就是以字节读取的。
字节流和字符流的区别:
读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。
结论:只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。
java.io下面有两个抽象类:Inputstream和Reader lnputstream是表示字节输入流的所有类的超类Reader是用于读取字符流的抽象类Inputstream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别。即用Reader读取出来的是char数组或者String,使用Inputstrea田读取出来的是byte数组。弄清了两个超类的根本区别,再来看他们底下子类的使用,这里只对最常用的几个说明