Collecction接口
目前为止学习的容器有
1.数组:长度一旦确定就不能更改,对于同一个数组中,既可以是存放基本数据类型元素的数组,也可以是存放引用数据类型数组
2.StringBuffer:无论存放什么类型的元素,一旦进入到StringBuffer,都是以字符类型的形式存储,长度可以改变
3.集合:结合了数组和长度可变的优点
集合是一个统称,并不是指某一种类。
属于的集合既然是一个容器,那么这些容器都有一些相同的共性。
这里学习的本质上是不同的集合类,这些集合类之间有相同的属性或者行为,集合与集合之间会形成继承体系。
比如有些集合不允许元素重复,有些集合允许元素重复,有些集合可以对元素进行排序,有些集合对查找有更好的支持....
换句话说,就是不同的集合底层的数据结构不同,导致了不同的集合具有不同的特点
集合的种类
ArrayList
ArrayList是实现了List接口的具体子类,List接口是继承自Collection接口
借助创建ArrayList对象,来使用学习Collection接口中的方法
ArrayList类中有一个无参构造方法,可以让我们创建一个空的集合
Collection中的抽象方法一定会在具体子类ArrayList中找到实现:
boolean add(E e) E就类似于Object
boolean remove(Object o)
void clear()
boolean contains(Object o)
boolean isEmpty()
int size()
注意:
1、java中的集合只能存储引用数据类型
2、集合长度是可变的,集合可以存储不同类型的对象
现在先通过ArrayList来学习Collection的方法
package com.shujia.day11;
import java.util.Collection;
import java.util.ArrayList;
public class CollectionDemo2 {
public static void main(String[] args) {
Collection c1=new ArrayList();
//boolean add(E e) 向集合中添加元素 可以存放任意引用类型
c1.add(10);//这里有自动装箱 int:10---->Integer
/*
ArrayList extends AbstractList
AbstractList extends AbstractCollection
*/
c1.add(12.34);
c1.add("hello");
c1.add(true);
c1.add(true);//重复值得是允许ArrayList里面允许重复
c1.add(false);
System.out.println(c1);//[10] 这里重写了ArrayList()的方法 toString()底层实际使用的是ArrayList的父类的父类AbstractCollection中的toString()
//boolean remove(Object o)
c1.remove(true);//只会删除一次
c1.remove("asas");//若没有值,不会报错,不会对其进行操作
System.out.println(c1);
//void clear()
// c1.clear();
//boolean contains(Object o) 判断集合中是否包含某个元素
System.out.println(c1.contains(12.34));
//boolean isEmpty() 判断集合是否为空
System.out.println(c1.isEmpty());
//int size() 获取集合中的元素个数
System.out.println(c1.size());
}
}
Collection中的方法:
boolean addAll(Collection c)
boolean removeAll(Collection c)
boolean containsAll(Collection c)
boolean retainAll(Collection c)
package com.shujia.day11;
import java.util.ArrayList;
import java.util.Collection;
public class CollectionDemo3 {
public static void main(String[] args) {
Collection c1=new ArrayList();
c1.add("java");
c1.add("maven&git");
c1.add("redis");
c1.add("clickhouse");
c1.add("hadoop");
Collection c2=new ArrayList();
c2.add("java");
c2.add("clickhouse");
c2.add("hadoop");
c2.add("hive");
System.out.println("c1"+c1);
System.out.println("c2"+c2);
//boolean addAll(Collection c) 将一个元素集合中的元素添加到另一个集合中
c1.addAll(c2);
System.out.println(c1);
}
}
遍历集合
如何遍历一个集合:
Object[] toArray()
把集合转成数组,可以实现集合的遍历
Iterator iterator()
迭代器,集合的专用遍历方式
今后学习集合的4步骤:
1、创建集合对象
2、创建元素对象
3、向集合中添加元素
4、遍历集合
package com.shujia.day11;
import java.util.Collection;
import java.util.ArrayList;
public class CollectionDemo4 {
public static void main(String[] args) {
//创建集合对象
Collection c1=new ArrayList();
c1.add("java");
c1.add("maven");
c1.add("clickhouse");
System.out.println("c1"+c1);
// Object[] toArray() 将集合转成数组,遍历数组,得到集合中每个元素
Object[] arr=c1.toArray();
for (int i=0;i<arr.length;i++){
//向下转型
String s=(String) arr[i];
System.out.println(s+","+s.length());
}
}
}
标签:ArrayList,接口,add,boolean,Collection,ArrryList,集合,c1
From: https://www.cnblogs.com/peculiar/p/18056613