java 集合笔记二 —— List 集合,java 运行原理
目录
[](
)list 的相关方法
下面以 ArrayList 举例
在末尾添加一个元素 add(E e)
返回集合中的元素个数 size()
import java.util.ArrayList;
import java.util.List;
public class ListDemo1 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("apple"); //size=1
list.add("pear"); //size=2
list.add("apple"); //size=3,允许添加重复元素
System.out.println(list.size()); //3
}
}
在指定索引添加一个元素 add(int index, E e)
import java.util.ArrayList;
import java.util.List;
public class ListDemo1 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("apple");
list.add("pear");
list.add(1,"Banana");//在指定的位置插入
list.add(null); //允许添加 null
for(int i=0;i<list.size();i++){
String s = list.get(i);
System.out.println(s);
}
}
}
结果为
获取指定索引的元素 get(int index)
import java.util.*;
public class ListDemo3 {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("grape");
System.out.println(fruits.get(0)); //apple
System.out.println(fruits.get(1)); //banana
}
}
set(int index,Object obj):把指定索引位置的元素修改为指定的值,返回修改前的值
import java.util.ArrayList;
import java.util.List;
public class demo10 {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("grape");
System.out.println(fruits.set(1,"pear")); //banana
System.out.println(fruits.get(1)); //pear
}
}
判断该元素集合中是否存在
import java.util.ArrayList;
import java.util.List;
public class demo10 {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("grape");
System.out.println(fruits.contains("pear")); //false
System.out.println(fruits.contains("apple")); //true
}
}
删除指定位置的元素
package review.ListDemo1;
import java.util.ArrayList;
import java.util.List;
public class demo10 {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add(2,"pear");
for(String s : fruits){
System.out.println(s);
}
System.out.println();
fruits.remove(2);
for(String s : fruits){
System.out.println(s);
}
}
}
结果为
[](
)Arrays.asList
Arrays.asList 的作用是将数组转化为 list,一般用于 List 集合的初始化,简化代码
该方法不适用于基本数据类型(比如 int,double 等)
Arrays.asList 生成的 List 集合不支持 add(),remove(),clear()等方法,即 Arrays.asList 生成的 List 集合长度不可改变
Arrays.asList 会将数组与 List 集合链接起来,更新数组或者集合时,另一个也会随之更新
import java.util.Arrays;
import java.util.List;
public class test1 {
public static void main(String[] args) {
//往 List 集合中添加类的对象
List list = Arrays.asList(
new Student("zhang",12),
new Student("zhao",15)
);
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
System.out.println("---"+list.size());
System.out.println("============");
//将 String 数组中的值放入 List 集合
String[] s =
{"a","b","c"};
List<String> list1 = Arrays.asList(s);
for(String ss:list1){
System.out.println(ss);
}
System.out.println("---"+list1.size());
System.out.println("============");
//将 Integer 数组中的值放入 List 集合
Integer[] i = {1,2,3};
List<Integer> list2 = Arrays.asList(i);
for(Integer ii:list2){
System.out.println(ii);
}
System.out.println("============");
//直接像这样把值写进括号里面也可以
List<String> list3 = Arrays.asList("a","b","c");
System.out.println(list3.toString());
}
}
import java.util.Arrays;
import java.util.List;
public class test2 {
public static void main(String[] args) {
//数组与 List 集合链接起来,更新任何一个,另一个都会随之改变
String[] s = {"a","b","c","d"};
List<String> list = Arrays.asList(s);
System.out.println(list.toString());
System.out.println("==============");
//更改 List 集合
list.set(0,"e");
//分别打印 list 集合和数组 s
System.out.println(list.toString());
System.out.println(Arrays.toString(s));
System.out.println("==============");
//更改数组
s[1] = "f";
//分别打印 list 集合和数组 s
System.out.println(list.toString());
System.out.println(Arrays.toString(s));
}
}
结果为
[](
)遍历 List 集合
package review.ListDemo1;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class test3 {
public static void main(String[] args) {
List<String> list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
//遍历 List 集合
// 方式一、增强 for 循环
for(String ss : list){
System.out.println(ss);
}
//方式二、get 方法与 size 方法相结合
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
//方式三、iterator 迭代器遍历
Iterator<String> it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
[](
)LinkedList 类概述
底层数据结构是链表,查询慢,增删快
线程不安全,效率高
LinkedList 的特有功能:
添加功能:
public void addFirst(Object obj):在该集合开头插入指定的元素
public void addLast(Object obj)将指定的元素追加到此列表的末尾。// 这个方法相当于 add(Object) 。
获取功能:
public Object getFirst():返回此集合中的第一个元素。
getLast():返回此列表中的最后一个元素。
删除功能:
public Object removeFirst():移除集合中第一个元素
public Object removeLast():移除集合中最后一个元素
import java.util.LinkedList;
public class demo10 {
public static void main(String[] args) {
LinkedList linkedList = new LinkedList();
//add()添加元素
linkedList.add("hadoop");
linkedList.add("hive");
linkedList.add("flink");
System.out.println(linkedList.toString()); //[hadoop, hive, flink]
//addFirst(Object obj) 在该集合开头插入指定的元素
linkedList.addFirst("apple");
System.out.println(linkedList.toString()); //[apple, hadoop, hive, flink]
//addLast(Object obj)将指定的元素追加到此列表的末尾
linkedList.addLast("pear");
System.out.println(linkedList.toString()); //[apple, hadoop, hive, flink, pear]
//getFirst() 返回此集合中的第一个元素
System.out.println(linkedList.getFirst()); //apple
//getLast() 返回此列表中的最后一个元素
System.out.println(linkedList.getLast()); //pear
//removeFirst() 移除集合中第一个元素,返回被删除的元素
System.out.println(linkedList.removeFirst()); //apple
System.out.println(linkedList.toString()); //[hadoop, hive, flink, pear]
//removeLast() 移除集合中最后一个元素,返回被删除的元素
评论