通辽企业网站建设,哪里有做家教网站的,oss做静态网站,开发软件需要学什么专业但逢良辰#xff0c;顺颂时宜 —— 24.5.28 一、List接口 1.概述: 是collection接口的子接口 2.常见的实现类: ArrayList LinkedList Vector 二、List集合下的实现类 1.ArrayList集合的使用及源码分析 1.概述 ArrayList是List接口的实现类 2.特点 a.元素有序 — 按照什么顺… 但逢良辰顺颂时宜 —— 24.5.28 一、List接口 1.概述: 是collection接口的子接口 2.常见的实现类: ArrayList LinkedList Vector 二、List集合下的实现类 1.ArrayList集合的使用及源码分析 1.概述 ArrayList是List接口的实现类 2.特点 a.元素有序 — 按照什么顺序存的,就按照什么顺序取 b.元素可重复 c.有索引 — 可以利用索引去操作元素 d.线程不安全 3.数据结构:数组 4.常用方法 boolean add(E e) — 将元素添加到集合中 — 尾部(add方法一定能添加成功的,所以我们不用boolean接收返回值) void add(int indexE element) — 在指定索引位置上添加元素 boolean remove(Object o) — 删除指定的元素,删除成功为true,失败为false E remove(int index) — 删除指定索引位置上的元素,返回的是被删除的元素 E set(int indexE element) — 将指定索引位置上的元素,修改成后面的element元素 E get(int index) — 根据索引获取元素 int size() — 获取集合元素个数 5.示例 package S83SetFrame;import java.util.ArrayList;public class Demo226List {public static void main(String[] args) {ArrayListString list new ArrayList();// boolean add(E e)-将元素添加到集合中-尾部(add方法一定能添加成功的,所以我们不用boolean接收返回值)list.add(一切都会好的);list.add(我一直相信);list.add(万事胜意);System.out.println(list); // [一切都会好的, 我一直相信, 万事胜意]// void add(int indexE element)-在指定索引位置上添加元素list.add(2,苦难是花开的伏笔);System.out.println(list); // [一切都会好的, 我一直相信, 苦难是花开的伏笔, 万事胜意]// boolean remove(0bject o)-删除指定的元素,删除成功为true,失败为falselist.remove(苦难是花开的伏笔);System.out.println(list); // [一切都会好的, 我一直相信, 万事胜意]// E remove(int index)-删除指定索引位置上的元素,返回的是被删除的那个元素String res list.remove(2);System.out.println(res); // 万事胜意System.out.println(list); // [一切都会好的, 我一直相信]// E set(int indexE element)-将指定索引位置上的元素,修改成后面的element元素String res1 会好 迟早;list.set(0,res1);System.out.println(list); // [会好 迟早, 我一直相信]// E get(int index)-根据索引获取元素String res2 list.get(1);System.out.println(res2); // 我一直相信// int size()-获取集合元素个数int size list.size();System.out.println(list.size()); // 2System.out.println(size); // 2}
}List集合的遍历 package S83SetFrame;import java.util.ArrayList;
import java.util.Iterator;public class Demo227ListForeach {public static void main(String[] args) {ArrayListString list new ArrayList();// boolean add(E e)-将元素添加到集合中-尾部(add方法一定能添加成功的,所以我们不用boolean接收返回值)list.add(一切都会好的);list.add(我一直相信);list.add(万事胜意);// 遍历方式1IteratorString iterator list.iterator();while (iterator.hasNext()){System.out.println(iterator.next());}// 遍历方式2 快捷键 集合名.forifor (int i 0; i list.size(); i) {System.out.println(list.get(i));}}
}列表元素是整数型的删除 需求:删除2
remove(object o)-直接删除指定元素
remove(int index)-删除指定索引位置上的元素
如果remove中直接传递整数,默认调用按照指定索引删除元素的remove但是此时1ist中没有2索引,所以越界
解决:我们可以将2包装成包装类,变成包装类之后,其父类就是object package S83SetFrame;import java.util.ArrayList;public class Demo228ListDeleteInt {public static void main(String[] args) {ArrayListInteger list new ArrayListInteger();list.add(2);
// 需求:删除2
// remove(object o)-直接删除指定元素
// remove(int index)-删除指定索引位置上的元素
// 如果remove中直接传递整数,默认调用按照指定索引删除元素的remove但是此时1ist中没有2索引,所以越界
// 解决:我们可以将2包装成包装类,变成包装类之后,其父类就是object了list.remove(new Integer(2));System.out.println(list);}
}6.ArrayList构造方法: a.ArrayList() 构造一个初始容量为十的空列表 b.ArrayList(int initialcapacity) 构造具有指定初始容量的空列表 7.ArrayList源码总结: a.不是一new底层就会创建初始容量为10的空列表而是第一次add的时候才会创建初始化容量为10的空列表 b.ArrayList底层是数组,那么为啥还说集合长度可变呢? ArrayList底层会自动扩容 — Arrays.copyof c.扩容多少倍? 1.5倍 2.LinkedList集合的使用及源码分析 1.概述 LinkedList是List接口的实现类 2.特点 a.元素有序 b.元素可重复 c.有索引 — 这里说的有索引仅仅指有操作索引的方法,不代表本质上具有索引 d.线程不安全 3.数据结构 双向链表 4.方法 public void addFirst(E e)将指定元素插入此列表的开头。 public void addLast(E e)将指定元素添加到此列表的结尾。 public E getFirst()返回此列表的第一个元素。 public E getLast()返回此列表的最后一个元素。 public E removeFirst()移除并返回此列表的第一个元素。 public E removeLast()移除并返回此列表的最后一个元素。 public E pop()从此列表所表示的堆栈处弹出一个元素。 public void push(E e)将元素推入此列表所表示的堆栈。 public boolean isEmpty()如果列表没有元素则返回true。 5.示例 package S83SetFrame;import java.util.LinkedList;public class Demo229LinkedList {public static void main(String[] args) {LinkedListString linkedList new LinkedList();linkedList.add(A);linkedList.add(B);linkedList.add(C);linkedList.add(D);linkedList.add(E);System.out.println(linkedList);// public void addFirst(E e):将指定元素插入此列表的开头。linkedList.addFirst(F);linkedList.addFirst(G);System.out.println(linkedList);System.out.println(————————————————————————————————————);// public void addLast(E e):将指定元素添加到此列表的结尾。linkedList.addLast(H);linkedList.addLast(I);linkedList.addLast(J);System.out.println(linkedList);System.out.println(————————————————————————————————————);// public E getFirst():返此列表的第一个元素。System.out.println(linkedList);System.out.println(linkedList.getFirst());System.out.println(————————————————————————————————————);// public E getLast():返回此列表的最后一个元素。System.out.println(linkedList);System.out.println(linkedList.getLast());System.out.println(————————————————————————————————————);// public E removeFirst():移除并返回此列表的第一个元素。String ele linkedList.removeFirst();System.out.println(ele);System.out.println(linkedList);System.out.println(————————————————————————————————————);// public E removeLast():移除并返回此列表的最后一个元素。String ele2 linkedList.removeLast();System.out.println(ele2);System.out.println(linkedList);System.out.println(————————————————————————————————————);// public E pop():从此列表所表示的堆栈处弹出一个元素。System.out.println(linkedList.pop());System.out.println(linkedList);System.out.println(————————————————————————————————————);// public void push(E e):将元素推入此列表所表示的堆栈。linkedList.push(K);System.out.println(linkedList);System.out.println(————————————————————————————————————);// public boolean isEmpty():如果列表没有元素则返回true.System.out.println(linkedList.isEmpty());}
}linkedList的遍历 package S83SetFrame;import java.util.Iterator;
import java.util.LinkedList;public class Demo230LinkedListForeach {public static void main(String[] args) {LinkedListString linkedList new LinkedList();linkedList.add(A);linkedList.add(B);linkedList.add(C);linkedList.add(D);linkedList.add(E);System.out.println(linkedList);// 遍历IteratorString iterator linkedList.iterator();while (iterator.hasNext()) {System.out.println(iterator.next());}// 根据索引遍历for (int i 0; i linkedList.size(); i) {System.out.println(linkedList.get(i));}}
}