Java 数组
数据就是相同类型的元素按照一定的顺序排列的集合,就是把有限个相同类型的变量 用一个名字命名
1.初始化数组
数组类型 【】数组名 =new 数组类型【个数】 这里是 动态初始化 ,只是给数组规定了大小 ,并没有赋值,系统会默认给出该数组类型默认的值,如int类型的默认值是0,,数组的个数不能省略 不然报错
如: int array []=new int[20]; 申明的是一个可以存储20个整数的数组
数组类型【】数组名={值1,值2,·······} 这里是静态的初始化,直接赋值,且规定了大小,即后面值的个数
如:int[] array2 ={1,2,23,3}; 注意这里的值只可以重复的,分别对应不同的下表。与后面要学的集合有区别。
2.二维数组的初始化 先留着 后面补充
3.数组的遍历
传统遍历:
int[] array ={1,2,23,3};
for(int i=0;i<array.length;i++){ 注意这里的length不需要加括号,不是调用方法,这里的length是数组的属性
System.out.println(array2[i]);
}
增强遍历: for each 方法
int[] array ={1,2,23,3};
for (int i:array){ array注意不要加中括号,数组的名称就是array ,左边定义一个对应的类型接收,然后打印输出接收的值,后面的集合也可以用 System.err.println(i); 这两种遍历方式,两者区别暂不做介绍,还有一种非使用迭代器方式,先说明,如果需要获取下标,一般用传统的for 循环
}
4.数组的排序
nt[] array ={1,2,23,3};
Arrays.sort(array); 这里的arrays 是一个专门的数组进行操作的一个类,后面可以学到,sort是排序方法,数值类型按大小排序,string类型按字母顺序
for (int i:array){ 排序,引用类型排序????
System.err.println(i);
}
5.数组常用API
1.输出数组 System.out.println(Arrays.toString(array)); array 是 数组名,这里也是利用到arrays这个专门操作的数组的类中的方 法,将数组转化为字符串,然后打印输出, 想要按照自己的方法输出, 可以以后的学习中重写头to string方法
2.数组转集合 list
String []s={"lei","gei","shi"}; 声明s数组
Arrays.aslist(array); 调用arrays的方法,转换成集合 ,此方法返回一个集合
LIst list =new ArrayList(); 定 义一个集合list 来接收 这里最好给集合加上泛型对应数组的类型,避免涉及到强转会出错
//即 LIst<String> list =new ArrayLIst<String>();
list =Arrays.asLIst(array); 接收 ,或者以上两步可直接写为:LIst list =new ArrayList(Arrays.aslist(array)); 定义的时候直接赋 值, 调用有参构造方法
System.out.println(list); 打印输出 这里集合类有默认的toString方法 ,直接输出就行了
数组转set 类似 不在叙述,那么集合怎么转数组呢? 同样的 操作List类也提供了 集合转数组的 方法
String [] str = new String[list.size()]; 创建一个list大小的数组来准备接收
list.toarray(str); list 本身来调用toarray方法,括号里面添加数组,这样就可以把自己的数据复制到数组里面,此 方法没有返回值
System.out.println(str); 这样写是错误的 ,数组本身不能输出,这一点和集合不同,需要借助arrays类 将数组转化为 字符 串输出
System.out.println(arrays.tostring(str)); 将数组转换成字符串输出
3.数组中是否包含某个值 数组本身没有任何的方法,数组的所有操作都是借助于其他类来完成的
String []s={"lei","gei","shi"};
List<String> list=new ArrayList<String>(Arrays.aslist(s)); 将数组转化为集合 ,
boolean b =list.contains("shi"); 调用集合里面的contains方法,判断集合里面是否含有某个值。此方法返回布尔值。