集合数组
ArrayList<>
特点:提供了一个储存空间可变的数组
对于ArrayList来说,有一个尖括号代表泛型。
泛型:也就是装在集合当中的所有元素,全都是统一的什么类型,String类,int类,或者自定义类
//person类自己定义的
ArrayList<Person> array = new ArrayList<Person>();
导包:java.util.ArrayList
构造方法:
(1)
public ArrayList()//创建一个空的集合对象,一般可不写
public ArrayList(int index,element)
构造和添加方法
public class ArrayList_test{
public static void main(String [] args){
//创建一个实力化对象
ArrayList<String> array =new ArrayList<Sting>();
//添加元素1
array.add("cat");
array.add("dog");
//添加方式二
array.add(1,"cat");
array.add(2,"dog");//如果直接到(4,“dog”)就会报错
System.out.println("输出:"+array);
}
}
ArrayList常用方法
1、add(Object element): 向列表的尾部添加指定的元素。
2、size(): 返回列表中的元素个数。`
System.out.println(array.size());
3、get(int index): 返回列表中指定位置的元素,index从0开始。
4、add(int index, Object element): 在列表的指定位置插入指定元素。
5、set(int i, Object element): 将索引i位置元素替换为元素element并返回被替换的元素。
array.set(1,"pig");
System.out.println(array);
//或者一次性
System.out.println(array.set(1,"pig"));
6、clear(): 从列表中移除所有元素。
7、isEmpty(): 判断列表是否包含元素,不包含元素则返回 true,否则返回false。
8、contains(Object o): 如果列表包含指定的元素,则返回 true。`
9、remove(int index): 移除列表中指定位置的元素,并返回被删元素。
10、remove(Object o): 移除集合中第一次出现的指定元素,移除成功返回true,否则返回false。
System.out.println(array.remove("pig"));//这样子可以直接看出它的反馈输出,
//不需要看就直接array.remove("pig")
11、iterator(): 返回按适当顺序在列表的元素上进行迭代的迭代器
*为数据容器提供了公共的操作接口,可以对数据容器进行遍历操作
[1]:hasNext();如果迭代具有更多元素,返回true。
[2]:next();返回迭代中的下一个元素
Iterator i = array.iterator();
while (i.hasNext()){
String n =(String)i.next();
System.out.print(n+"\t");
遍历数组
public class ArrayList_test{
public static void main(String [] args){
//创建一个实力化对象
ArrayList<String> array =new ArrayList<Sting>();
array.add("cat");
array.add("dog");
//方式——
for(int i=0;i<array.size();i++)//遍历
System.out.println(array.get(i));
//方式二:使用迭代器
Iterator i = array.iterator();
while (i.hasNext()){
String n =(String)i.next();
System.out.print(n+"\t");
//方式三:增强for循环
for (Object obj:array
) {
System.out.print(obj+"\t");
}
}
List集合
特点:List集合是有序集合,可以精确控制列表中的每个元素的插入位置,通过索引访问元素。
与set集合不同,允许重复的元素。
导包:java.util.ArrayList
构造和添加方法
public class List_test{
public static void main(String [] args){
//创建一个实力化对象
//**如果List<String> array =new List<Sting>();是错误的**
List<String> array =new ArrayList<Sting>();
//添加元素1
array.add("cat");
array.add("cat");
//方式二:使用迭代器
Iterator i = array.iterator();
while (i.hasNext()){
String n =(String)i.next();
System.out.print(n+"\t");
}
}
List常用方法
和ArrayList常用方法,注意索引不要越界。
LinkedList
**优点:**LinkedList是一个实现了List接口和Deque接口的双端链表。LinkedList底层的链表结构使它支持高效的插入和删除操作,另外它实现了Deque接口,使得LinkedList类也具有队列的特性
缺点: 相对于ArrayList,LinkedList的随机访问集合元素时性能较差,因为需要在双向列表中找到要index的位置,再返回
Listedlist特有的方法
【1】void addFirst(E e) 将指定元素插入此列表的开头。
void addLast(E e) 将指定元素添加到此列表的结尾
【2】(1) E element() 获取但不移除此列表的头元素。
(2) E getFirst() 返回此列表的第一个元素,如果此双端队列为空,它将抛出一个异常。
( 3) E getLast() 返回此列表的最后一个元素。
【3】
(1) E poll() 获取并移除此列表的头元素(第一个元素)
【4】
(1)int lastIndexOf(Object o) 返回此列表中最后出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1。
(2) int indexOf(Object o)返回此列表中首次出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1。
【5】
public E removeFirst ();从列表中删除并返回第一个元素
public E removeLast ();从列表中删除并返回最后个元素
【6】
【6】
(1) E pop() 从此列表所表示的堆栈处弹出一个元素。即返回并且移除这个元素
(2)void push(E e) 将元素推入此列表所表示的堆栈
Java中List和ArrayList的区别
List是一个接口,接口的方法是抽象的,不能实例化,而ArrayList是List接口的一个实现类,ArrayList类继承并实现了List接口,List list = new ArrayList();这句创建了一个ArrayList实现类的对象后把它上溯到了List接口
尽量使用List list = new ArrayList(),而不用ArrayList alist = new ArrayList()呢?
List接口有多个实现类,现在你用的是ArrayList,可能需要换成其它的实现类,如LinkedList,这时你只要改变这一行就行了: List list = new LinkedList(); 其它使用了list地方的代码根本不需要改动。
补充(接口方式创建类的对象)
与用类创建类的对象的方式相似,只是将第一个类名改为接口名。即class List implements Arraylist
List list = new ArrayList();
接口名 对象名 =new 类名()
注: 用接口方式创建的类的对象,只能用对象名.方法名 访问接口中定义的方法,不能访问类中自己定义的属性和方法以及接口中的属性。
collection集合
【1】是单列集合的顶层接口,表示一组对象
【2】jdk不提空此接口的任何实现,提供具体的子接口set和list实现
创建collection 对象
多态方式:collection = new arrayList();上面已经讲过了
collection方法
同Array List方法;
set集
特点:不包含重复元素,不能嗲索引的方法,不能使用普通for循环遍历
hashSet :对对象的迭代顺序不能保证;
创建集合对象:
Set<String> set = new HashSet<Stirng>();