目录
前言
集合-->容器
数组:同一种类型,长度固定不变,每一个元素都有索引,索引从0开始.
数组在实际使用中不方便:
长度不可变
现实中程序运行时数据量是可以改变的,需要能满足可变的需求
有的时候想存储不可重复的数据,有的时候想对元素进行排序
所以Java中为我们提供了许多不同特征的容器类
本章主题就是学习Java给我们提供的不同的容器类,来实现更为丰富的数据存储
一、List接口及实现类
1.ArrayList
底层数据结构为数组(遍历,访问的速度快)
常用方法:
public static void main(String[] args) {
ArrayList<String>arrayList=new ArrayList<>();
arrayList.add("a");
arrayList.add("b");
arrayList.add("c");
arrayList.add("d");
arrayList.add("e");
arrayList.add("a");
arrayList.add("b");
arrayList.add("a");
arrayList.add("a");
arrayList.add("a");
arrayList.add("a");
arrayList.add("a");
//arrayList.add(11, "x");//向指定的位置添加元素,位置从0开始 到size(实际装入的元素个数
//arrayList.remove("b");//根据元素的内容删除数据,只删除匹配的第一个元素
//String s=arrayList.remove(0);//删除第几个元素并提取出来
//System.out.println(s);
//arrayList.clear();//清除所有元素
//System.out.println(arrayList.contains("x"));//是否包含指定元素
//System.out.println(arrayList.get(3));//获得指定位置的元素
//System.out.println(arrayList1.isEmpty()),判断集合中的元素是否为空 为空--true 否则--false
// arrayList1.set(1,"A");//替换指定位置的元素
//System.out.println(arrayList.size());//获得集合中实际元素的个数,也可以说是集合的长度
//System.out.println(arrayList.index0f("b")):
//System.out.println(arrayList.lastIndex0f("b"));
System.out.println(arrayList);
2.LinkedList
底层数据结构为链表(插入,删除的速度快)
常用方法:
package com.ffyc.javacollection.list;
import java.util.LinkedList;
public class LinkedListDemo1 {
public static void main(String[] args) {
/*
List接口实现类
LinkedList
底层是链表实现,每一个数据封装在一个Node类中
*/
LinkedList<String> linkedList = new LinkedList<>();
linkedList.add("a");
linkedList.add("b");
linkedList.add("c");
linkedList.add("d");
linkedList.add("d");
linkedList.add("d");
linkedList.add(2, "x");
System.out.println(linkedList.get(3));
//从链表中获取指定位置的元素(从头或者从尾开始查找,效率低于ArrayList)
//linkedList.clear();
linkedList.contains("a");
linkedList.remove("b");
linkedList.remove(2);
linkedList.remove();//删除并返回第一个节点内容
linkedList.removeLast();//删除并返回最后一个节点内容
linkedList.isEmpty();
linkedList.size();
linkedList.set(1, "s");
System.out.println(linkedList);
}
}
总结
本章只是对List的接口及实现类