List集合-数据结构
List集合-数据结构
数据结构是计算机存储,组织数据的方式.是指相互之间存在一种或多种特定关系的数据元素的集合.
通常情况下, 精心选择的数据结构可以带来更高的运行或者存储效率.








数组:查询快, 增删慢.
链表:查询慢, 增删快.
List集合子类的特点

package List;
import java.util.ArrayList;
import java.util.LinkedList;
//分别使用ArrayList和LinkedList完成存储字符串并遍历
public class ArrayList_LinkedListDemo {
public static void main(String[] args) {
//ArrayList
ArrayList<String> al = new ArrayList<>();
al.add("hello");
al.add("world");
for (String i : al){
System.out.println(i);
}
LinkedList<String> ll = new LinkedList<>();
ll.add("hello");
ll.add("world");
for (String i:ll){
System.out.println(i);
}
}
}
LinkedList集合存储3个学生对象并用3种方式遍历
package List;
import java.util.Iterator;
import java.util.LinkedList;
/*
案例: 创建一个储存学生对象的LinkedList集合,存储3个学生对象,在控制台遍历
思路:
1. 定义学生类,
2. 创建LinkedList集合对象
3. 创建学生对象
4. 把学生添加到集合
5. 遍历集合(迭代器方式, 用for循环方式和增强for循环方式)
*/
public class LinkedListDemo {
public static void main(String[] args) {
LinkedList<student> link = new LinkedList<>();
student s1 = new student("Peppa",5);
student s2 = new student("George",3);
link.add(s1);
link.add(s2);
//Iterator
Iterator<student> it = link.iterator();
while(it.hasNext()){
student s = it.next();
System.out.println(s.getName()+" , "+s.getAge());
}
System.out.println("--------------");
//for loop
for (int i = 0; i<link.size(); i++){
student s = link.get(i);
System.out.println(s.getName()+" , "+s.getAge());
}
System.out.println("--------------");
//enhanced for
for (student i : link){
System.out.println(i.getName()+" , "+i.getAge());
}
}
}
LinkedList集合的特有功能

package List;
import java.util.LinkedList;
/*
2.12 LinkedList集合的特有功能
方法名 说明
public void addFirst(Ee) 在该列表开头插入指定的元素
public void addLast(E e) 将指定的元素追加到此列表的末尾
public E getFirst() 返回此列表中的第一个元素
public E getLast() 返回此列表中的最后一个元素
public E removeFirst() 从此列表中删除并返回第一个元素
public E removeLast() 从此列表中删除并返回最后一个元素
*/
public class LinkedListDemo02 {
public static void main(String[] args) {
LinkedList<String> link = new LinkedList<>(); //创建集合对象
link.add("aaa");
link.add("bbb");
link.add("ccc");
link.addFirst("AAA"); //开头添加
link.addLast("XXX"); //末尾添加
System.out.println(link.getFirst()); //返回第一个元素
System.out.println(link.getLast()); //返回最后一个元素
System.out.println(link.removeFirst());//删除first元素,返回被删除的元素
System.out.println(link.removeLast());//删除last元素,返回被删除的元素
System.out.println(link);
}
}
/*控制台输出
AAA
XXX
AAA
XXX
[aaa, bbb, ccc]
*/

浙公网安备 33010602011771号