一、数组介绍
1、简介:数组是一种容器,可以储存同种数据类型的多个值的容器
但同种类型数据不要过于死板,比如:
double[] arr1 = {11.1, 22.2, 33};
System.out.pringln(arr1[2]);//打印输出了33.0,将整型的33隐式转为浮点型
int[] arr2 = {10, 20, 'a'};
System.out.println(arr2[2]);//打印输出了97,将字符型的a隐式转换成整型
但为方便理解,尽量还是在数组里储存同数据类型。
2、 打印数组名,可获得数组的十六进制内存地址:
int[] arr2 = {11, 22, 33};
System.out.println(arr2);
//打印结果为 [I@74a14482
3、数组内元素的访问:
访问格式:数组名[索引]
索引:数组内一个空间对应一个编号,从0开始逐步+1增长
单个元素的访问:
int[] arr2 = {11, 22, 33};
System.out.println(arr[0]);//11
System.out.println(arr[1]);//22
System.out.println(arr[2]);//33
数组所有元素访问、获取或遍历,采用循环遍历的方法:
int[] arr2 = {11, 22, 33};
for(int i = 0; i < arr2.length; i++)
{
System.out.print(arr2[i] + " ");
}
//11 22 33
二、集合介绍
1、集合和数组的差异性:
相同点:都为存储多个数据的容器
不同点:数组长度不可变,集合长度可变
数组可以存储基本数据类型和引用数据类型,集合只能存储引用数据类型,
如要存基本数据类型,则需要存储相对应的包装类
2、遍历集合常用方法:由于集合长度不定,普通的for循环已不符合遍历要求,而迭代器遍历集合和增强for循环为普遍遍历方式
迭代器:Iterator<E> iterator(),通过集合对象的iterator()方法得到
Iterator中的常用方法:
boolean hasNext():判断当前位置是否有元素可以被取出
E next():获取当前位置的元素,将迭代器对象移向下一个索引位置
public class IteratorDemo1
{
public static void main(String[] args)
{
//创建集合对象
Collection<String> c = new ArrayList<>();
//添加元素
c.add("hello");
c.add("world");
c.add("java");
c.add("javaee");
//Iterator<E> iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
Iterator<String> it = c.iterator();
//用while循环改进元素的判断和获取
while (it.hasNext())
{
String s = it.next();
System.out.println(s);
}
}
}
//hello world java javaee
增强for循环,格式:
for(集合/数组中元素的数据类型 变量名 : 集合/数组名)
{
// 已经将当前遍历到的元素封装到变量中了,直接使用变量即可
}
public class MyCollectonDemo1
{
public static void main(String[] args)
{
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
list.add("f");
//1,数据类型一定是集合或者数组中元素的类型
//2,str仅仅是一个变量名而已,在循环的过程中,依次表示集合或者数组中的每一个元素
//3,list就是要遍历的集合或者数组
for(String str : list)
{
System.out.print(str + " ");
}
}
}
//a b c d e f