集合框架(一)

集合框架

 什么是集合

集合相当于一个容器里面可以存放若干个元素那与数组有什么区别呢?

数组长度是固定的,因为底层使用final来修饰,而集合可以进行扩容的。

数组只能存放一种数据类型,对于其它类型无法存放的。

集合它是一个类里面有大量的方法,比如:添加元素,删除元素,修改元素,查询元素等。

集合框架种类

Collection接口

collection接口下有两个接口为Set和List

Set特点是无序不重复的,它的实现类ArrayList和LinkedList

List特点是有序可重复的,它的实现类HashSet和TreeSet

ArrayList实现类

ArrayList底层是实现基于动态数组数据结构。一个ArrayList集合是存储在一块连续的内存中的。

优点:ArrayList查询和修改效率

缺点:ArrayList删除和添加效率

创建ArrayList的语法:

语法:

①ArrayList  名称=new  ArrayList()
②ArrayList  名称=new  ArrayList(初始化容量数)

举个例子:

1 public class Test {
2     public static void main(String[] args) {
3         //调用ArrayList中的无参构造器,如果不传入数组长度,默认为10个
4         ArrayList list=new ArrayList();
5         //可以传入数字,确定数组的长度
6         ArrayList list1=new ArrayList(15);
7 
8     }
9 }

ArrayList类提供大量方法

添加操作

语法:

boolean  add(Object  o):添加元素
②void     add(int index ,  Object  ele):在指定位置添加元素

举个例子:

 1 public class Test {
 2     public static void main(String[] args) {
 3         //调用ArrayList中的无参构造器,如果不传入数组长度,默认为10个
 4         ArrayList list=new ArrayList();
 5         //list 可以添加任意类型的数据
 6         list.add("张三");
 7         list.add(12);
 8         list.add(true);
 9         list.add(12.83);
10     }
11 }

删除操作

语法:

①Element  remove(int  index):删除指定位置的元素并返回
②Object   remove(Object  0): 删除指定元素的第一次出现(如果存在)

举个例子:

 1 public class Test {
 2     public static void main(String[] args) {
 3         //调用ArrayList中的无参构造器,如果不传入数组长度,默认为10个
 4         ArrayList list=new ArrayList();
 5         //根据索引删除元素
 6         list.remove(2);
 7         //根据删除指定元素第一次出现
 8         list.remove(12.6);
 9     }
10 }

修改操作

语法:

Element  set(int index, E element): 用指定的元素替换此列表中指定位置的元素。 

 举个例子:

1 public class Test {
2     public static void main(String[] args) {
3         //创建arraylist集合
4         ArrayList list=new ArrayList();
5         //通过索引位置修改内容
6         list.set(1,"星期四");
7     }
8 }

查询操作

语法:

Element   get(int index):查询指定索引位置上的元素 

举个例子:

 1 public class Test {
 2     public static void main(String[] args) {
 3         //创建arraylist集合
 4         ArrayList list=new ArrayList();
 5         //添加元素
 6         list.add("张三");
 7         list.add(12);
 8         list.add(12.3);
 9         list.add('c');
10         list.add(true);
11         //查询元素信息
12         list.get(1);
13         list.get(3);
14     }
15 }

LinkedList实现类

LinkedList底层使用双链表,双链表它存储的空间不连续的通过指针实现逻辑上的连续

优点:LinkedList删除和增加的操作效率很

缺点:LinkedList查询和修改的操作效率很

创建LinkedList的语法:

语法:

LinkedList   名称=new   LinkedList()

举个例子:

1 public class Test2 {
2     public static void main(String[] args) {
3         //创建一个无参的LinkedList对象
4         LinkedList list=new LinkedList();
5     }
6 }

LinkedList提供大量的方法

添加操作

语法:

void addFirst(E  e):在该列表开头插入指定的元素
②void addLast(E  e):将指定的元素追加到此列表的末尾
③void add(E  e):在该列表的尾部追加元素
④void add(int index , E e):在指定位置上添加元素
④void addAll(Collection  col):将集合元素添加到列表中
⑤void addAll(int index , Collection col):将指定位置上添加集合

举个例子:

 1 public class Test2 {
 2     public static void main(String[] args) {
 3         //创建一个无参的LinkedList对象
 4         LinkedList list=new LinkedList();
 5         //在链表的尾部追加
 6         list.add(12);
 7         //在指定位置上添加元素
 8         list.add(0,1);
 9         //在头部链表上添加元素
10         list.addFirst(45);
11         //在链表的尾部追加元素
12         list.addLast(39);
13         Collection collection=new ArrayList();
14         //将其它的集合添加到链表中
15         list.addAll(collection);
16         //在指定位置上添加集合内容
17         list.addAll(2,collection);
18     }
19 }

删除操作

语法:

boolean  remove(Object  o):删除第一次出现的元素
②boolean  removeFirst():删除第一个元素
③boolean  remove(int  index):根据索引位置删除指定元素
④boolean  removeLast():删除尾部的元素

举个例子:

 1 public class Test2 {
 2     public static void main(String[] args) {
 3         //创建一个无参的LinkedList对象
 4         LinkedList list=new LinkedList();
 5         //移除头部元素
 6         list.removeFirst();
 7         //根据索引位置删除指定元素
 8         list.remove(2);
 9         //删除尾部的元素
10         list.removeLast();
11     }
12 }

修改操作

语法:

E set(int index,E e):根据索引位置修改元素。

举个例子:

1 public class Test2 {
2     public static void main(String[] args) {
3         //创建一个无参的LinkedList对象
4         LinkedList list=new LinkedList();
5         //根据索引位置修改元素
6         list.set(1,"Java");
7     }
8 }

查询操作

语法:

①E  get(int index) :根据索引位置获取元素
②E  getFirst() :获取第一个元素
③E  getLast() :获取最后一个元素

举个例子:

 1 public class Test2 {
 2     public static void main(String[] args) {
 3         //创建一个无参的LinkedList对象
 4         LinkedList list=new LinkedList();
 5         //获取第一个元素
 6         list.getLast();
 7         //获取最后一个元素
 8         list.getLast();
 9         //根据索引值来查询元素
10         list.get(2);
11     }
12 }

 

posted @ 2023-11-17 09:57  和哗  阅读(6)  评论(0编辑  收藏  举报