集合Collection
用来存放对象的数据结构,其长度可变,且集合中可以存放不同类型的对象。并且提供了一组操作成批对象的方法
数组的缺点:长度是固定不可变的,访问方式单一,插入、删除等操作繁琐。
泛型:<>
用来约束集合中元素的类型,只能写引用类型,不能是基本类型
一、学习根接口集合:
Collection<E>,接口里是没有构造方法的,也无法创建对象
Collection c = new Collecion();报错:因为Collection是接口,不能实例化
1.创建对象
//<Integer>是泛型,用来约束集合中元素的类型,只能写引用类型,不能是基本类型
Collection<Integer> c=new ArrayList();
2.常用方法
c.add(100);向集合中添加元素
c.add(200);
c.add(300);
System.out.println(c);
c.clear();清空集合
System.out.println(c.contains(200));判断集合中是否存在指定元素
System.out.println(c.equals(100));判断集合是否和100相等
System.out.println(c.hashCode());返回集合的哈希码值
System.out.println(c.isEmpty());判断集合是否为空
System.out.println(c.remove(200));删除集合中的元素,删除成功后返回true
System.out.println(c.size());获取集合的长度
Object[] o=c.toArray();把集合中的元素放到一个数组中 System.out.println(Arrays.toString(o));打印集合中的元素(要先放到数组中)
集合间的操作
Collection<Integer> c2=new ArrayList();
c2.add(9);
c2.add(8);
c2.add(7);
c.addAll(c2);往集合里添加一个集合c2
System.out.println(c);
System.out.println(c.containsAll(c2));判断集合c里面是否包含c2集合
System.out.println(c.removeAll(c2));从c集合中移除c2集合
System.out.println(c);
System.out.println(c.retainAll(c2));从c集合中移除c集合
System.out.println(c);
3.遍历/迭代集合中的元素 Iterator<E> inIterator
Iterator<Integer> it=c.iterator();
while (it.hasNext()) {
//hasNext()用来判断集合中是否有下一个元素,有就返回true
Integer inte =it.next();//获取迭代到的元素
System.out.println(inte);
}
List extends Collection 接口是继承接口,并且可以继承多个接口,不能实现接口。因为接口的成员方法都具有抽象属性,不具有方法体,无法完成实现。
二.学习子接口:List
List接口: 数据都有下标,数据可重复,有序,插入元素高效
有序的。此接口的用户可以对列表中的每个元素的插入位置进行精确的控制。用户可以根据元素的整数索引访问元素,并搜索列表中的元素
public static void main(String[] args) {
1.创建List接口对象------是接口,不可直接创建对象,用实现类创建
List<String> list=new ArrayList<String>();
2.常用方法
继承自Collection接口的方法
list.add("jack");添加元素
list.add("toney");
list.clear();清空集合
System.out.println(list.contains("jack"));判断集合是否包含jack
System.out.println(list.equals("jack"));判断集合是否和jack相等
System.out.println(list.hashCode());返回集合的哈希码值
System.out.println(list.isEmpty());判断集合是否为空
System.out.println(list.remove("jack"));移除集合中的元素jack
System.out.println(list.size());获取集合的长度
Object[] array = list.toArray();把集合的元素放入数组
System.out.println(Arrays.toString(array));将数组中的元素展示出来
list特有方法
list.add(1, "yuyu");在指定下标处添加指定元素
System.out.println(list.get(2));获取下标为2的元素
System.out.println(list.indexOf("toney"));获取指定元素第一次出现的下标
System.out.println(list.lastIndexOf("toney"));获取元素最后一次出现的下标
System.out.println(list.remove(3));按照下标删除指定元素
System.out.println(list.set(0, "qian"));置换元素,把下标为0的元素换成qian
list.subList(0, 5);截取元素,含头不含尾
List<String> subList = list.subList(0, 5);
System.out.println(subList);
集合间的操作
List<String> list2=new Arr