ArrayList集合
在前面我们学习了Collection以及他的子集合List,子集合中有三个实现类分别是ArrayList,vector,LinkedList三个集合,接下来让我们了解一下这三个集合:
Arraylist集合对字符串的两种遍历方式:
package com.ArrayList; import java.util.ArrayList; import java.util.Iterator; public class ArrayListDome { public static void main(String[] args) { ArrayList list=new ArrayList(); list.add("Hello"); list.add("World"); list.add("javaSE"); //方式一:通过迭代器遍历 Iterator it=list.iterator(); while(it.hasNext()) { String s=(String) it.next(); System.out.println(s); } System.out.println("--------------"); //方式二:通过size()和get方法遍历 for(int x=0;x<list.size();x++) { String s1=(String)list.get(x); System.out.println(s1); } } } 运行结果: Hello World javaSE -------------- Hello World javaSE
对自定义对象的遍历方法:
首先创建一个自定义对象类:
package com.ArrayList; public class Student { private String name; private int age; public Student() { super(); } public Student(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
然后在创建一个测试类去调用自定义类中的变量去遍历
package com.ArrayList; import java.util.ArrayList; import java.util.Iterator; /** *通过ArrayList集合遍历自定义对象 * */ public class ArrayListStudentDome { public static void main(String[] args) { //创建ArrayList集合对象 ArrayList list=new ArrayList(); //创建学生对象 Student s1=new Student("迪丽热巴",27); Student s2=new Student("高雯",25); Student s3=new Student("赵星星",24); Student s4=new Student("吴宣仪",24); Student s5=new Student("杨颖",32); //将学生对象导入ArrayList集合对象中 list.add(s1); list.add(s2); list.add(s3); list.add(s4); list.add(s5); //方法一:使用迭代器遍历 Iterator it =list.iterator(); while(it.hasNext()) { Student st=(Student) it.next(); System.out.println(st.getName()+"----"+st.getAge()); } System.out.println("---------------------"); //方式二:使用size()和get()遍历 for(int x=0;x<list.size();x++) { Student st2=(Student) list.get(x); System.out.println(st2.getName()+"----"+st2.getAge()); } } } 运行结果: 迪丽热巴----27 高雯----25 赵星星----24 吴宣仪----24 杨颖----32 --------------------- 迪丽热巴----27 高雯----25 赵星星----24 吴宣仪----24 杨颖----32
Vector集合
Vector集合也是List集合下的第二个子实现接口
Vector集合
底层是一种可增长对象数组,查询快,增删慢
线程安全,同步,执行效率高
Vector的特有功能:
public void addElement(Object obj)------->相当于add(Object obj)
public Enumeration elements():返回此向量的枚举--->相当 于:public Iterator iterator()迭代器
boolean hasMoreElements() --->相当于boolean hasNext() ;
Object nextElement() --->相当于Object next() ;
例如:
package com.vector; import java.util.Enumeration; import java.util.Vector; import javax.lang.model.util.Elements; public class vectorDome { public static void main(String[] args) { //创建Vector集合的对象 Vector ve=new Vector(); //给对象添加元素 ve.addElement("element"); ve.addElement("Enumeration"); ve.addElement("elements"); //获取向量的枚举(也就是相当于ArrayList中的迭代器) Enumeration e=ve.elements(); //进行遍历 while(e.hasMoreElements()) { String st=(String) e.nextElement(); System.out.println(st); } } } 运行结果: element Enumeration Elements
LinkedList集合
LinkedList集合的特点:
底层是一种链表实现,查询慢,增删快
线程不安全的,不同步,执行效率高
linkedList特有功能:
添加功能
addFirst(Object e):将指定的元素插入到列表的开头
addLast(object e):将指定的元素添加到列表末尾
获取功能:
getFirst():获取列表第一个元素
getLast():获取列表最后一个元素
删除功能
public Object removeFirst()移除并返回此列表的第一个元素。
public Object removeLast()移除并返回此列表的最后一个元素
例如:
package com.LinkedList; import java.util.LinkedList; public class LinkedListDome { public static void main(String[] args) { //创建LinkedList集合的对象 LinkedList list=new LinkedList(); //添加功能:addFirst(Object e):将指定的元素插入到列表的开头 list.addFirst("hello"); list.addFirst("World"); list.addFirst("Android"); System.out.println(list); //addLast(object e):将指定的元素添加到列表末尾 System.out.println("-------------------"); list.addLast("baby"); System.out.println(list); System.out.println("-------------------"); //获取列表中的第一个元素 System.out.println(list.getFirst()); //获取列表中的最后一个元素 System.out.println(list.getLast()); System.out.println("---------------------"); //删除功能:删除第一个集合中的第一个元素 list.removeFirst(); System.out.println("removeFirst过后的List:"+list); list.removeLast(); System.out.println("removeLast过后的List:"+list); } } 运行结果: [Android, World, hello] ------------------- [Android, World, hello, baby] ------------------- Android baby --------------------- removeFirst:[World, hello, baby] removeLast:[World, hello]