Java集合框架——一个编程小白的Java SE学习日志11【极客BOY-米奇】

前言(转载请说明作者:极客BOY)

  • 2020.5.14

    发布

任务导引

开发一款电话号码管理程序,具有电话号码的添加、删除、修改和查询的功能。

List接口

特点

  • 有序的

    有序并不是排好了序,而是按照素放进去的顺序读取,并不是散乱的排布。

  • 可重复的

    允许有相同的元素存在。

如何使用

我们知道,接口不能被实例化,所以,我们需要它的子类,根据 List的子类来实例化

下面介绍的是List接口的实现子类

ArrayList

ArrayList即数组实现

ArrayList使用数组作为实现结构,但是元素个数不受限制,是大小可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率高,但是任何不在结尾处增加元素或删除元素的操作都会引起大量元素的移位

e.g.

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ArrayListDemo1 {

	public static void main(String[] args) {
		// 建立列表,默认元素数:10
		List<String> list = new ArrayList<String>();

		System.out.println("添加元素……");
		// 在末尾添加
		list.add("BASIC");
		list.add("C");
		list.add("Python");
		list.add("Java");

		System.out.println("在2下标前插入");
		list.add(2, "C++");
		System.out.println(list);

		list.set(0, "Ada");
		System.out.println(list.get(3));

		System.out.println("用下标遍历列表:");
		for (int i = 0; i < list.size(); i++) {
			System.out.print(list.get(i) + " ");
		}
	}
}

LinkedList

LinkedList即链表,采用链式存储结构, 插入、删除元素时不会引起大量元素的移动,效率高。它专门提供了对尾部和头部添加和删除的操作方法,而且效率很高。

e.g. 在头尾添加字符串

import java.util.LinkedList;

public class LinkedListDemo {

	public static void main(String[] args) {
		LinkedList<String> list = new LinkedList<String>();
		System.out.println("添加元素……");
		list.add("BASIC");
		list.add("C");
		list.addFirst("Python");
		list.addLast("Java");
		System.out
				.println("链表头:" + list.getFirst() + "\n链表尾:" + list.getLast());
		for (String string : list) {
			System.out.println(string);
		}
	}
    
}

List排序

按照你的想法,你认为排序方法可能在List接口中有这个方法,但是事实并没有。

但我们可以注意到下图的Java集合框架图结构图中可以看到右下角有个Utilities

在这里插入图片描述

它里面包含了sort方法,可以进行排序,前提是List集合中包含的数据类型中,是实现Comparable的类的实例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客BOY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值