wordpress建企业站,php搭建网站软件下载,网站实名认证需要什么,做网站为什么要做备案接入List不同实现类的对比 文章目录 List不同实现类的对比实现类之一ArrayList实现类之二 LinkedList实现类之三 Vector练习 java.util.Collection用于存储一个一个数据的框架子接口#xff1a;List存储有序的、可重复的数据#xff08;相当于动态数组#xff09; ArrayList lis…List不同实现类的对比 文章目录 List不同实现类的对比实现类之一ArrayList实现类之二 LinkedList实现类之三 Vector练习 java.util.Collection用于存储一个一个数据的框架子接口List存储有序的、可重复的数据相当于动态数组 ArrayList list的主要实现类线程不安全、效率高 底层使用Object[]的数组存储。添加数据、查找数据时效率较高插入数据、删除数据时效率较低Vector List的古老实现类 线程安全、效率低 底层使用Object[]数组存储LinkedList 底层使用双向链表的方式进行存储。插入数据、删除数据时效率较高添加数据、查找数据时效率较低。 实现类之一ArrayList ArrayList 是 List 接口的主要实现类 本质上ArrayList是对象引用的一个”变长”数组 Arrays.asList(…) 方法返回的 List 集合既不是 ArrayList 实例也不是 Vector 实例。 Arrays.asList(…) 返回值是一个固定长度的 List 集合
实现类之二 LinkedList
对于频繁的插入或删除元素的操作建议使用LinkedList类效率较高。这是由底层采用链表双向链表结构存储数据决定的。
特有方法
void addFirst(Object obj)void addLast(Object obj)Object getFirst()Object getLast()Object removeFirst()Object removeLast()
实现类之三 Vector
Vector 是一个古老的集合JDK1.0就有了。大多数操作与ArrayList相同区别之处在于Vector是线程安全的。在各种List中最好把ArrayList作为默认选择。当插入、删除频繁时使用LinkedListVector总是比ArrayList慢所以尽量避免使用。特有方法 void addElement(Object obj)void insertElementAt(Object obj,int index)void setElementAt(Object obj,int index)void removeElement(Object obj)void removeAllElements()
练习 键盘录入学生信息保存到集合List中 定义学生类。存在姓名、年龄的属性使用ArrayList集合保存录入的多个学生对象循环录入方式录入结束后用迭代器遍历 //学生类
public class Student {private String name;private int age;public Student(String name, int age) {this.name name;this.age age;}public Student(){}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;}Overridepublic String toString() {return Student{ name name \ , age age };}Overridepublic boolean equals(Object o) {if (this o) return true;if (o null || getClass() ! o.getClass()) return false;Student student (Student) o;return age student.age Objects.equals(name, student.name);}Overridepublic int hashCode() {return Objects.hash(name, age);}
}//Test类
import java.util.ArrayList;
import java.util.Scanner;public class StudentTest {public static void main(String[] args) {Scanner input new Scanner(System.in);ArrayList list new ArrayList();System.out.println(请录入学生信息:);while(true){System.out.println(1,继续录入 0.结束录入);int selection input.nextInt();if(selection 0){break;}System.out.println(请输入学生的姓名:);String name input.next();System.out.println(请输入学生的年龄);int age input.nextInt();Student s new Student(name,age);list.add(s);}//遍历集合中的学生信息System.out.println(遍历学生信息);for(Object s : list){System.out.println(s.toString());}input.close();}
}