package com.qiaoyx.java;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.PrimitiveIterator;
/**
* 相同点:都存储有序可重复的数据
* ArrayList:底层封装数组,线程不安全,效率高,较常用
* LinkedList:双向链表,插入和删除效率高
* Vector:线程安全,效率低,版本较低一般不用
* @author: qyx
* @date: 2022-08-03 18:57
* @desc:
*/
public class ListTest {
@Test
public void test1(){
ArrayList list = new ArrayList();
list.add(123);
list.add(456);
list.add("AA");
list.add(new Person("Tom",12));
list.add(456);
list.add(1,"BB");
List list1 = Arrays.asList(1, 2, 3);
list.add(list1);
System.out.println(list);
System.out.println(list.get(0));
}
//LinkedHashSet的使用
//LinkedHashSet作为HashSet的子类,在添加数据的同时,每个数据还维护了两个引用,记录此数据前一个数据和后一个数据
//优点:对于比较频繁的遍历操作,LinkedHashSet的效率要高于HashSet
@Test
public void test2(){
ArrayList list = new ArrayList();
list.add(123);
list.add(456);
list.add("AA");
list.add(new Person("Tom",12));
list.add(456);
System.out.println(list.indexOf(4567));//正着查找元素的索引,如果不存在返回负一
System.out.println(list.lastIndexOf(456));//查找元素的索引(倒着找)
System.out.println(list.remove(0));//移除指定索引的元素,并返回该元素
System.out.println(list);
list.set(1,"CC");
System.out.println(list);
List list1 = list.subList(2, 4);
System.out.println(list1);
int[] arr = new int[2];
for(int a :arr){
}
}
}
package com.qiaoyx.java;
import java.util.Objects;
/**
* @author: qyx
* @date: 2022-08-02 22:20
* @desc:
*/
public class Person {
private int age;
private String name;
public Person() {
}
public Person(String name, int age) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
System.out.println("Person.equals()...... ");
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age && Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(age, name);
}
}
List的三种实现类
最新推荐文章于 2024-09-06 13:50:31 发布