1、集合简介
用来管理一组对象的单一对象。集合内的对象称之为元素,集合可处理多种类型对象,这些对象共同的父类是Object
2、数组与集合
相同点:都是存储数据的容器,存储Object类型时,其实就是存储的对象的地址
不同点:
a、数组可以存储记本数据类型(int,double,string....),集合不可以
b、数组长度固定,集合长度可变
3、Collection接口
List子接口抽象方法:
boolean add(E e) //从列表尾部追加元素(E--泛型)
void add(int index,E element) //在列表中的指定位置添加元素
![](/qrcode.jpg)
boolean addAll(int index,Collection c) //将集合c中的元素添加到列表的指定位置
E get(int index) //返回列表中的指定位置的元素
int indexOf(Object obj) //返回指定元素第一次在列表中出现的位置,如果没有返回-1
int lastIndexOf(Object obj) //返回指定元素第一次在列表中出现的位置,如果没有返回-1
E remove(int index) //移除里表中指定位置的元素,并返回该被移除的元素对象
E set(int index,Eelement) //用指定的元素替换指定位置上的元素,并返回被替换的元素
List subList(int fromIndex,int toIndex) //截取子集,返回指定的fromIndex到toIndex之间的试图部分(通过子集引用修改元素,会影响父集)
练习代码:
/*
* list子接口----父接口Collection
* list接口特点
* 有序,可重复(一个元素可存多次)
* 元素的索引:从0开始---到size()-1
* list的实现类
* ArrayList,Linkedlist,Vector
*/
public static void main(String[] args) {
String str1 = "gaoyuanyuan";
//创建一个集合对象
List<String> list = new ArrayList<String>();
/*
* boolean add(E e)
* 从尾部追加元素
* E:是指泛型
*/
list.add("aaa");
list.add(str1);
System.out.println(list);
list.add("bbb");
System.out.println(list);
/*
* int size()
* 长度
*/
System.out.println(list.size());
/*
* void add(int index,E e)
* 向索引为一的位置上添加元素“xxx”;
*/
list.add(1, "ccc");
System.out.println(list);
/*
* boolean addAll(Collection c)
* 作用:将集c合添加到末尾
*/
List<String> one = new ArrayList<String>();
one.add("hello");
one.add("world");
one.add(str1);
list.addAll(one);
System.out.println(list);
/*
* boolean addAll(int index,Collection c)
* 指定index位置上插入集合
*/
List<String> two = new ArrayList<String>();
two.add("hellokikty");
two.add("helloSuper");
//将two插入到list集合的最前面
list.addAll(0, two);
System.out.println(list);
}
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
//将10,20,30,。。。添加到集合list中
for(int i=1;i<10;i++){
list.add(i*10);
}
System.out.println(list);
/*
* List subList(int forIndex,int toIndex)
* 从forIndex开始截取到toIndex结束
* 包前不包后
*
* 通过子集引用修改元素
* 会影响夫集
*/
//截取前7个
List<Integer> sublist = list.subList(1, 8);
//将子集锂元素进行乘10
for(int i=0;i<sublist.size();i++){
int element = sublist.get(i);
sublist.set(i, element*10);
}
System.out.println(sublist);
//子集与父集的地址是否时同一个
System.out.println(sublist.hashCode()==list.hashCode());
}