iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java中的集合
  • 601
分享到

java中的集合

javajvm开发语言 2023-09-04 05:09:21 601人浏览 独家记忆
摘要

1.集合概述 Java的集合框架是由很多接口、抽象类、具体类组成的,都位于java.util包中。 2.Collection接口 Collection 接口-定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式。Set 中

1.集合概述

Java的集合框架是由很多接口、抽象类、具体类组成的,都位于java.util包中。

2.Collection接口

Collection 接口-定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式。
Set 中的数据对象没有顺序且不可以重复。

List中的数据对象有顺序且可以重复。

3.List接口及其实现类

 List继承了Collection接口,有三个实现的类。
- ArrayList
数组列表,数据采用数组方式存储。
-LinkedList
链表
-Vector
数组列表,添加同步,线程安全

public class VectorDemo {    public static void main(String[] args) {        Vector vector=new Vector();        vector.add("a");        vector.add("a");        vector.add("a");        vector.add("a");        vector.add("a");        System.out.println(vector);    }}

ArrayList实现了长度可变的数组,在内存中分配连续的空间
遍历元素和随机访问元素的效率比较高。

LinkedList采用链表存储方式插入、删除元素时效率比较高

ArrayList的常用方法
add(int index, E element)
get(int index)
indexOf(Object o)
lastIndexOf(Object o)
remove(int index)    删除并返回指定位置元素
removeRange (int fromIndex, int toIndex) 删除指定区间的元素(子类继承使用)
set(int index, E element)

 ArrayList arrayList=new ArrayList();        arrayList.add(100);        arrayList.add(1,10);        arrayList.add(20);        arrayList.add(20);        arrayList.add(20);        arrayList.add(20);        arrayList.add(20);        arrayList.add(20);        arrayList.add(20);        arrayList.add(20);        //arrayList.clear();        System.out.println(arrayList.contains(20));        System.out.println(arrayList.isEmpty());        System.out.println(arrayList.get(0));        System.out.println(arrayList.remove(1));//删除        System.out.println(arrayList.remove((Object)100));//删除某个值        Object [] array=arrayList.toArray();        System.out.println(Arrays.toString(array));//转数组        System.out.println(arrayList);

LinkedList的常用方法
add(int index,Object element)
addFirist(Object element)
addLast(Object element)
get(int index)
removeFirst()
removeLast()
remove(int index)
getFirst()
getLast()

LinkedList linklist=new LinkedList();        linklist.add("a");        linklist.add("a");        linklist.add("a");        linklist.add("a");        linklist.add("a");        //linklist.clear();        linklist.addFirst("e");        linklist.addLast("e");        //peek 检索不删除        //poll 检索并删除        System.out.println(linklist.getFirst());        System.out.println(linklist.pollLast());        System.out.println(linklist.removeFirst());        System.out.println(linklist.indexOf("a"));        System.out.println(linklist.set(0,"s"));        System.out.println(linklist.size());        System.out.println(linklist);

List接口集合迭代

● for循环遍历
● 增强for循环的遍历
● 迭代器遍历(Iterator)

ArrayList list = new ArrayList<>();        list.add("a");        list.add("a");        list.add("b");        list.add("c");        list.add("d");                     //迭代器iterator(        Iterator iterator = list.iterator();        while (iterator.hasNext()) {            String s = iterator.next();            if (s.equals("a")) {                iterator.remove();            }        }        System.out.println(list);

4.Set 接口

● Set接口继承了Collection接口。
Set中所存储的元素是不重复的,但是是无序的, Set中的元素是没有索引
● Set接口有两个实现类


● HashSet
HashSet类中的元素不能重复,即彼此调用equals方法比较,都返回false。
底层数据结构是哈希表+链表
哈希表依赖于哈希值存储

public class HashSetDemo1 {    public static void main(String[] args) {        HashSet hashSet=new HashSet<>();          hashSet.add("a");          hashSet.add("白色");          int a="红色".hashCode();        System.out.println(a);          hashSet.add("黑色");        int a1="种地".hashCode();        System.out.println(a1);          hashSet.add("c");          hashSet.add("d");        System.out.println(hashSet);    }}
public class HashSetDemo {    public static void main(String[] args) {        HashSet hashSet=new HashSet<>();        Car car1= new Car("宝马1",101);        Car car5= new Car("宝马1",101);        Car car2= new Car("宝马2",102);        Car car3= new Car("宝马3",103);        Car car4= new Car("宝马4",104);        //在Car类中重写了hashcode方法,先对hash值进行比较,在对内容进行比较        hashSet.add(car1);        hashSet.add(car2);        hashSet.add(car3);        hashSet.add(car4);        hashSet.add(car5);        System.out.println(hashSet);    }


● TreeSet
可以给Set集合中的元素进行指定方式的排序。存储的对象必须实现Comparable接口。
TreeSet底层数据结构是二叉树(红黑树是一种自平衡的二叉树)。

public class TreeSetDemo {    public static void main(String[] args) {        TreeSet treeSet=new TreeSet<>();        Car car1= new Car("宝马1",101);        Car car5= new Car("宝马1",101);        Car car2= new Car("宝马2",102);        Car car3= new Car("宝马3",103);        Car car4= new Car("宝马4",104);        treeSet.add(car1);        treeSet.add(car3);        treeSet.add(car5);        treeSet.add(car2);        treeSet.add(car4);        System.out.println(treeSet);    }

5.Set接口集合的迭代

遍历方式
增强for循环
迭代器遍历

  ArrayList list = new ArrayList<>();        list.add("a");        list.add("b");        list.add("c");        list.add("d");       ListIterator listIterator=list.listIterator();       while(listIterator.hasNext()){           String s=listIterator.next();           System.out.println(s);       }      ListIterator listIterator1=list.listIterator(list.size());       while(listIterator.hasPrevious()){           String s=listIterator.previous();           System.out.println(s);       }

上文中用到的Car类中重写了一系列方法。

package com.ffyc.collection;public class Car  implements Comparable {    String name;    int num;    public int compareTo(Car o) {        return o.num-this.num;    }    public Car(String name, int num) {        this.name = name;        this.num = num;    }    @Override    public boolean equals(Object o) {        if (this == o) return true;        if (o == null || getClass() != o.getClass()) return false;        Car car = (Car) o;        if (num != car.num) return false;        return name != null ? name.equals(car.name) : car.name == null;    }    @Override    public int hashCode() {        int result = name != null ? name.hashCode() : 0;        result = 31 * result + num;        return result;    }    @Override    public String toString() {        return "Car{" +                "name='" + name + '\'' +                ", num=" + num +                '}';    }}

来源地址:https://blog.csdn.net/weixin_64189867/article/details/131133473

--结束END--

本文标题: java中的集合

本文链接: https://www.lsjlt.com/news/392999.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java中的集合
    1.集合概述 Java的集合框架是由很多接口、抽象类、具体类组成的,都位于java.util包中。 2.Collection接口 Collection 接口-定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式。Set 中...
    99+
    2023-09-04
    java jvm 开发语言
  • Java中Map集合的双列集合怎么用
    这篇文章给大家分享的是有关Java中Map集合的双列集合怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Map集合Map概述Map是一种依照键(key)存储元素的容器,键(key)很像下标,在List中下标是...
    99+
    2023-06-25
  • Java List 集合取 交集、并集、差集、补集 Java集合取交集、Java集合并集
            Java List 集合取 交集、并集、差集、补集 Java集合取交集、Java集合并集 一、概述         1、在日常开发中:       经常会遇到对2个集合的操作,例如:2个集合之间取相同的元素(交集),2个集...
    99+
    2023-08-31
    Java List集合交集 Java List集合并集 Java List集合交集差集 List 集合交易 并集 List集合补集差集
  • Java中的集合框架:理解Java中的数据结构和集合
    文章目录 Java中的集合框架:理解Java中的数据结构和集合1. 引言2. 技术原理及概念2.1 基本概念解释2.2 技术原理介绍 3. 实现步骤与流程3.1 准备工作:环境配置与依赖...
    99+
    2023-10-04
    数据结构 java 链表
  • 学习Java中的List集合
    目录1.概述2.List的使用2.1List的常用方法3.List的实现类3.1ArrayList3.2Vector3.3LinkedList3.4ArrayList与Vector的...
    99+
    2024-04-02
  • Java中集合的示例分析
    小编给大家分享一下Java中集合的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!java集合java集合类存放于java.util包中,是一个用来存放对象...
    99+
    2023-06-20
  • 【Java】求两集合的交集、并集、差集
    一、内置函数实现 1、removeAll方法:从list中删除指定集合中包含的所有元素。 2、retainAll方法:从list中删除指定集合中不包含的所有元素。 3、addAll方法:用来向Set集合添加另一个集合对象所包含的所有内容。 ...
    99+
    2023-08-18
    java
  • Java集合-List
    一、List集合概述 java.util.List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合,在List集合中允许出现重复的...
    99+
    2023-09-07
    java list 数据结构 算法 开发语言
  • Java集合-HashMap
    目录概述重要的参数put函数的实现get函数的实现hash函数的实现RESIZE的实现概述 ①以数组+链表+红黑树实现。主要用来处理具有键值对特征的数据。②当链表长度大于阈值(或者红...
    99+
    2024-04-02
  • java中的常用集合类整理
    目录Collection接口集合的遍历:iterator 接口集合的遍历:增强for循环List接口ArrayListSet接口Map接口HashMapLinkedHashMapTr...
    99+
    2024-04-02
  • java 中集合的原理是什么
    这期内容当中小编将会给大家带来有关java 中集合的原理是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、概述集合是一种长度可变,存储数据的数据结构多样,存储对象多样的一种数据容器。Java中集合可...
    99+
    2023-06-20
  • Java中什么是Map集合
    小编给大家分享一下Java中什么是Map集合,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、什么是Map不同于List单列的线性结构,Java中的Map提供的是...
    99+
    2023-06-02
  • Java中的set集合怎么应用
    这篇文章主要讲解了“Java中的set集合怎么应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的set集合怎么应用”吧!Set系类集合特点:无序:存取顺序不一致不重复:可以去除重...
    99+
    2023-07-02
  • java集合中list的示例分析
    这篇文章主要为大家展示了“java集合中list的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java集合中list的示例分析”这篇文章吧。1、List接口该接口定义的元素是有序的且可...
    99+
    2023-05-30
    java list
  • Java集合类的使用
    这篇文章主要介绍“Java集合类的使用”,在日常操作中,相信很多人在Java集合类的使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java集合类的使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!集合...
    99+
    2023-06-02
  • 【Java基础】Java中List集合的常用方法
    在Java编程中,List集合是最常用的一种数据结构之一。它具有动态扩容、元素添加、删除和查询等基础操作,可以存储各种类型的对象,并且支持泛型。在本文中,我将介绍Java List集合的常用方法,并通过实例演示这些方法的使用。 一、Lis...
    99+
    2023-09-04
    java 数据结构 list jvm
  • 基于java中集合的概念(详解)
    集合是储存对象的,长度可变,可以封装不同的对象迭代器: 其实就是取出元素的方式(只能判断,取出,移除,无法增加)就是把取出方式定义在集合内部,这样取出方式就可以直接访问集合内部的元素,那么取出方式就被定义成了内部类.二每一个容器的数据结构不...
    99+
    2023-05-31
    java 集合 概念
  • java中 Map集合的特性有哪些
    java中 Map集合的特性有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和...
    99+
    2023-06-14
  • Java中的set集合是什么意思
    目录引言概念HashSet集合LinkedHashSet集合:TreeSet集合:实战场景引言 在前面的内容中,我们先是一一介绍了Collection集合中都有哪些种类的集合,并且详...
    99+
    2024-04-02
  • 快速上手Java中的Properties集合类
    目录概念为什么需要Properties类?Properties总结概念 Java中的Properties文件是一种配置文件,主要用于表达配置信息,格式是文本文件。该类主要用于读取Ja...
    99+
    2023-02-06
    java properties集合类 properties java properties类怎么用
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作