版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_22067469/article/details/82181079
集合的由来
集合的由来
1、数组长度是
固定
,当添加的元素超过
了数组的长度
时需要对数组重新定义
,太麻烦
2、java内部给我们提供了集合类
,能存储任意对象,长度是可以改变
的,随着元素的增加而增加,随着元素的减少而减少数组和集合的区别
1、数组既可以存储
基本数据类型
,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值
2、集合只能
存储引用数据类型(对象),集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象,int - Integer
3、数组长度是固定
的,不能自动增长
4、集合的长度是可变的
,可以根据元素的增加而增长
5、如果元素个数是固定的推荐用数组
6、如果元素个数不是固定的推荐用集合
集合继承体系图
List: 有序集合,有索引,存与取的顺序一样,可以重复
Set: 无序集合,无索引,存与取的顺序不一样,不可以重复
Collection集合基本功能
- 基本功能方法
boolean add(E e) 添加元素
boolean remove(Object o) 移除元素
void clear() 清空元素
boolean contains(Object o) 包含某一个元素
boolean isEmpty() 集合是否为空
int size() 集合的大小
//创建一个集合对象
Collection coll = new ArrayList();//接口指向实现类【多态】
//添加元素
coll.add("Java");
coll.add("PHP");
coll.add("Python");
coll.add("H5");
System.out.println(coll);
//移除元素
coll.remove("PHP");
coll.remove("Python");
System.out.println(coll);
//清除所有元素
coll.clear();
System.out.println(coll);
//包含元素
//System.out.println(coll.contains("H5"));
//判断这个元素是否为空
//coll.clear();
//System.out.println(coll.isEmpty());
//查看集合有几个元素
System.out.println(coll.size());
- 集合转数组
//1.创建集合对象
Collection coll = new ArrayList();
//2.添加元素
coll.add("apple");
coll.add("banana");
coll.add("orange");
//3.集合的遍历(集合转数组遍历)
/*String s = "b";
Object o = s;*/
Object[] objs = coll.toArray();
for(int i = 0;i < objs.length; i++){
Object o = objs[i];
System.out.println(o.getClass());
}
- 集合遍历
迭代器是用来遍历集合的每一个元素的
迭代器有两个方法hasNext()和next()
// 案例1:迭代器的使用(案例)一个是字符串集合的遍历
Collection col1 = new ArrayList();
col1.add("苹果");
col1.add("芒果");
col1.add("奇异果");
//获取迭代器【迭代器不需要new,通过方法获取】
Iterator iterator = col1.iterator();
//System.out.println(iterator.getClass());是ArrayList的一个内部类
//遍历
while(iterator.hasNext()){//判断是否有下一个元素
Object o = iterator.next();//获取下一个元素
System.out.println(o);
}
// 案例2:迭代器的使用(案例)一个是学生对象集合的遍历
Collection col2 = new ArrayList();
col2.add(new Student("tony", 23));
col2.add(new Student("amy", 18));
col2.add(new Student("lucy", 29));
//获取迭代器
Iterator iterator2 = col2.iterator();
while(iterator2.hasNext()){
Object stu = iterator2.next();
System.out.println(stu);
}