IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> Java——集合 -> 正文阅读

[数据结构与算法]Java——集合

集合的体系结构:

1.List集合:

1.1 特点:

(1) 它是单列集合体系之一;

(2) List集合和它的实现类全部有索引;

(3) 可以存储重复元素;

(4) List集合和它的实现类的元素存取有序。

1.2 特有方法:

void add(int index,E e)——向集合中指定索引位置添加元素

E remove(int index)——删除指定索引处的元素并返回

E set(int index,E e)——修改指定索引处的元素,返回被修改的元素

E get(int index)——获取指定索引处的元素

1.3 遍历:

(1) 用迭代器进行遍历;

(2) 用普通for循环进行遍历;

(3) 用加强for进行遍历。

代码如下:

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class ListDemo {
    public static void main(String[] args) {
        List<Integer> l = new ArrayList<Integer>();
        l.add(1);
        l.add(6);
        l.add(8);
        l.add(9);
        l.add(15);
//        迭代器遍历
        ListIterator<Integer> it = l.listIterator();
        while (it.hasNext()) {
            Integer i = it.next();
            System.out.println(i);
        }
        System.out.println("--------");
//        普通for循环遍历
        for (int i = 0; i < l.size(); i++) {
            Integer i1 = l.get(i);
            System.out.println(i1);
        }
        System.out.println("--------");
//        增强for遍历
        for (Integer i2 : l) {
            System.out.println(i2);
        }
    }
}

运行结果如下:

2.Set集合:?

2.1 特点:

(1) 元素存储无序;

(2) 不可以重复存储元素;

(3) 没有索引。

2.2 HashSet:

特点:

(1) HashSet不能保证数据有序

(2)?HashSet数据是不能重复的

(3) HashSet是可以存储null值

(4) 底层是哈希表

(5) 没有索引

电脑中:

内存:高速存储、访问快,数据不能持久 磁盘:存储() 能持久化

2.3 LinkedHashSet:

特点:

(1) 是HashSet集合的子类;

(2) 不能存储重复元素;

(3) 能保证存储元素有序。

2.4?TreeSet:

特点:

(1) 不能存储重复元素;

(2) 存储元素有序;

(3) 没有索引。

排序:

(1) 自然排序Comparable;

(2) 比较器排序Comparabor。

3.Map:

3.1 特点:

(1) 键值对映射关系;

(2) 一个键对应一个值;

(3) 键不能重复;

(4) 元素存储无序。

3.2?常用方法:

V put(K k,V v)——向集合中添加一对元素
V remove(K k)——根据键删除键值对元素
void clear()——清空集合
boolean containsKey(K k)——判断集合中是否包含指定的键
boolean containsValue(V v)——判断集合中是否包含指定的值
boolean isEmpty()——判断集合是否为空
int size()——获取集合的长度

3.3?常用的获取方法 :

V get(K k)——根据键获取值

Set<K>keyset()——获取所有的键,保存到Set集合中

Collection<V>values——获取所有的键,保存到Collection集合中

Set<Map.Entry<K,V>>entrySet()——获取所有键值对,封装成Entry对象

?3.4 遍历:

第一种:

(1) 通过keySet()方法获取所有键的集合

(2) 遍历键的集合,拿到每一个键

(3) 通过get()方法,通过键获取值

第二种:

(1) 获取所有键值对对象的集合,使用entrySet()实现

(2)?遍历键值对对象集合,拿到每一个键值对对象

(3) 调用键值对对象中的getKey()和getValue()方法获取键和值

代码如下:

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Demo {
    public static void main(String[] args) {
        Map<Integer,Integer> m = new HashMap<Integer,Integer>();
        m.put(1,1);
        m.put(2,2);
        m.put(5,5);
//        第一种
        Set<Integer> keySet = m.keySet();
        for (Integer key : keySet) {
            Integer value = m.get(key);
            System.out.println(key+","+value);
        }
        System.out.println("--------");
//        第二种
        Set<Map.Entry<Integer, Integer>> entrySet = m.entrySet();
        for (Map.Entry<Integer, Integer> map : entrySet) {
            Integer key = map.getKey();
            Integer value = map.getValue();
            System.out.println(key+","+value);
        }
    }
}

运行结果如下:

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-02 17:01:12  更:2021-12-02 17:02:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 14:27:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码