IT评测·应用市场-qidao123.com

标题: java -- 简单的数据结构、List接口和Collections类 [打印本页]

作者: 雁过留声    时间: 2023-4-11 00:54
标题: java -- 简单的数据结构、List接口和Collections类
数据结构

数据结构 : 数据用什么样的方式组合在一起。
数据存储的常用结构有:栈、队列、数组、链表


栈:stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作。
采用该结构的集合,对元素的存取有如下的特点
这里两个名词需要注意:
队列

queue,简称队,它同堆栈一样,也是一种运算受限的线性表,其限制是仅允许在表的一端进行插入,而在表的另一端进行删除。
采用该结构的集合,对元素的存取有如下的特点:
数组

Array,是有序的元素序列,数组是在内存中开辟一段连续的空间,并在此空间存放元素。
采用该结构的集合,对元素的存取有如下的特点:
链表

linked list,由一系列结点node(链表中每一个元素称为结点)组成,结点可以在运行时i动态生成。
每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
我们常说的链表结构有单向链表与双向链表,这里说是单向链表
采用该结构的集合,对元素的存取有如下的特点:
List 接口

java.util.List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合。
在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。
List接口特点:
常用方法

List作为Collection集合的子接口,不但继承了Collection接口中的全部方法,而且还增加了一些根据元素索引来操作集合的特有方法
List的子类

ArrayList集合

java.util.ArrayList集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能为查询数据、遍历数据,所以ArrayList是最常用的集合。
随意的使用ArrayList完成任何需求是不提倡的。
LinkedList集合

java.util.LinkedList集合数据存储的结构是链表结构。方便元素添加、删除的集合。是一个双向链表结构
  1. import java.util.LinkedList;
  2. /*
  3.     java.util.LinkedList
  4.         有序有索引 元素可重复
  5.         底层数据结构是双向链表
  6.         查询慢 增删快
  7.         方法:
  8.             public void add(E e) :将指定元素添加到列表的结尾
  9.             public void addFirst(E e) :将指定元素插入此列表的开头。
  10.             public void addLast(E e) :将指定元素添加到此列表的结尾, 其实相当于add方法
  11.             public E get(int index) :返回列表的指定元素。
  12.             public E getFirst() :返回此列表的第一个元素。
  13.             public E getLast() :返回此列表的最后一个元素。
  14.             public E remove() :调用removeFirst方法, 移除并返回此列表的第一个元素。
  15.             public E removeFirst() :移除并返回此列表的第一个元素。
  16.             public E removeLast() :移除并返回此列表的最后一个元素。
  17.             public E pop() :从此列表所表示的堆栈处弹出一个元素。
  18.             public void push(E e) :将元素推入此列表所表示的堆栈。
  19.             public boolean isEmpty() :如果列表不包含元素,则返回true。
  20.             public void clear() :删除列表中所有元素
  21. */
  22. public class Demo {
  23.     public static void main(String[] args) {
  24.         LinkedList<Integer> list = new LinkedList<Integer>();
  25.         list.addLast(200);
  26.         list.add(1);
  27.         list.add(2);
  28.         list.addFirst(100);
  29.         System.out.println(list);
  30.         System.out.println(list.get(2));
  31.         System.out.println(list.getFirst());
  32.         System.out.println(list.getLast());
  33.         list.removeFirst();
  34.         list.removeLast();
  35.         System.out.println(list);
  36.         list.clear();
  37.         System.out.println(list);
  38.         // pop和push是栈结构
  39.         LinkedList<Integer> stack = new LinkedList<Integer>();
  40.         // 压栈
  41.         stack.push(1);
  42.         stack.push(2);
  43.         stack.push(3);
  44.         System.out.println(stack);
  45.         // 弹栈, 并返回弹出的内容
  46.         System.out.println(stack.pop());
  47.         System.out.println(stack);
  48.     }
  49. }
复制代码
Collections类

java.utils.Collections是集合工具类,用来对集合进行操作
shuffle方法
  1. public static void shuffle(List list)
  2. //打乱(List)集合中元素
复制代码
昨天的练习题中的洗牌需求可以使用该方法进行实现
  1. Collections.shuffle(pokerArrayList);
复制代码
sort方法

[code]public static




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4