有关java基础学习中的集合讨论

     2022-03-13     145

关键词:

 

    很高兴能在这里认识大家,我也是刚刚接触后端开发的学习者,相信很多朋友在学习中都会遇到很多头疼的问题,希望我们都能够把问题分享出来,把自己的学习思路整理出来,我们一起探讨一起成长。

   今天我在这里简单讲解一下我对学习中集合的理解。很多朋友再写解释的时候,没有从最简单说起,造成了阅读中的困惑,或许我能帮助你对集合有一个新的认识。

  首先当我们谈到集合的时候要了解一下集合的具体概念。

java集合的概念是相对于数组来说的,那么什么是数组呢?

  数组:数组是一段连续存储单元. 每个存储单元的空间大小相同.类型统一,数组的长度是不可变的(定义之后)。

          同一个数组只能存放相同类型的数据。(基本数据类型或者引用数据类型)

这样我们再解释集合就会容易理解了。

  集合:1,可以操作和储存数目不固定的一组数据。

           2,  java中所有集合都位于java.util包中。

           3,java集合中只能存放引用数据类型,不能存放基本数据类型。

           4,不限定集合的长度,可以添加任意多的元素。

           5,集合中限定元素成为泛型

  那么我们了解集合基本概念之后,看看集合的分类?首先我们要了解一点那就是接口的概念。

什么是接口呢?

什么是接口:接口就是一些方法特征的集合------接口是对抽象的抽象。
什么是抽象类:抽象类对某具体类型的部分实现------抽象类是对具体的抽象。
方法特征包括:方法的名字、参数的数目、参数的类型。不包括:返回类型、参数名字、和抛出的异常。
接口是类型转换的前提、是动态调用的保证。实现某一接口就完成了类型的转换(多重继承);动态调用只关心类型,不关心具体类。

因为我们谈到集合的时候必须涉及到接口。下面我们就了解一下集合的基本分类。我们看下面这幅图片。

技术分享

1、Collection接口(因为这个集合本身也属于接口)

 Collection是最基本集合接口,它定义了一组允许重复的对象。Collection接口派生了两个子接口Set和List,分别定义了两种不同的存储方式,如下:

2, Set接口

  Set接口继承于Collection接口,它没有提供额外的方法,但实现了Set接口的集合类中的元素是无序且不可重复。

       特征:无序且不可重复。

3、  List接口

        List接口同样也继承于Collection接口,但是与Set接口恰恰相反,List接口的集合类中的元素是对象有序且可重复。

       特征:有序且可重复。

       两个重要的实现类:ArrayList和LinkedList

       1.ArrayList特点是有序可重复的

       2.LinkedList是一个双向链表结构的。

 

4、Map接口

 Map也是接口,但没有继承Collection接口。该接口描述了从不重复的键到值的映射。Map接口用于维护键/值对(key/value pairs)。

特征:它描述了从不重复的键到值的映射。

两个重要的实现类:HashMap和TreeMap

1.HashMap,中文叫散列表,基于哈希表实现,特点就是键值对的映射关系。一个key对应一个Value。HashMap中元素的排列顺序是不固定的。更加适合于对元素进行插入、删除和定位。

2.TreeMap,基于红黑书实现。TreeMap中的元素保持着某种固定的顺序。更加适合于对元素的顺序遍历。

5、Iterator接口

Iterator接口,在C#里有例外一种说法IEnumerator,他们都是集合访问器,用于循环访问集合中的对象。       所有实现了Collection接口的容器类都有iterator方法,用于返回一个实现了Iterator接口的对象。Iterator对象称作迭代器,Iterator接口方法能以迭代方式逐个访问集合中各个元素,并可以从Collection中除去适当的元素。

关于一些集合的实现类的方法;

Arrays.hashCode:用来根据数组的内容计算其哈希值(数组对象的hashCode()不可用)。这个方法集合了Java 5的自动装箱和无参变量的特性,来实现将一个变量快速地传给 Arrays.hashcode方法——只是传值进去,不是对象。

Arrays.sort:对整个数组或者数组的一部分进行排序。也可以使用此方法用给定的比较器对对象数组进行排序。

Arrays.toString:打印数组的内容。

所有的集合都可以用T[] Collection.toArray( T[] a ) 这个方法复制到数组中。通常会用这样的方式调用,

1
<span class="hljs-keyword">return coll.toArray( <span class="hljs-keyword">new T[ coll.size() ] );</span></span>

这个方法会分配足够大的数组来储存所有的集合,这样 toArray 在返回值时就不必再分配空间了。

怎么遍历集合中的元素?

A:

 Iterator it=al.iterator();
  while(it.hasNext())
  {
  sop(it.next());
 }

B:

for(Iterator it=al.iterator();it.hasNext();)
{
sop(it.next());
}

c:

 for(String alist:al)
 {
  System.out.println(alist);
  }

我们对集合的探讨暂时到这里,后续可以加赠内容。

 

 

      

 

















spark基础-scala学习(集合)(代码片段)

集合scala的集合体系结构ListLinkedListSet集合的函数式编程函数式编程综合案例:统计多个文本内的单词总数scala的集合体系结构scala中的集合体系主要包括:Iterable、Seq、Set、Map。其中Iterable是所有集合trait的根trait。这个结构与java... 查看详情

java集合框架基础

...列有序的元素,并且可以在序列中间快速的插入或者删除有关元素。  有的集合接口,提供了映射关系 查看详情

java基础学习篇---------string集合的学习

一、String常用的方法: 二、集合学习       查看详情

java基础知识之什么是集合框架(代码片段)

Java基础知识之什么是集合框架,前面的文章,我们已经学习了Java的一些基础知识,比如泛型、注解等等内容,接着本博客继续学习Java中一个很常见的内容,集合。1、什么是Java中的集合框架?JavaCollections框架由接口和类组成,... 查看详情

零基础学习mongodb——集合操作(代码片段)

...数说明:name:要创建的集合名称options:可选参数,指定有关内存大小及索引的选项options可以是如下参数:字段类型描述capp 查看详情

零基础学习mongodb——集合操作(代码片段)

...数说明:name:要创建的集合名称options:可选参数,指定有关内存大小及索引的选项options可以是如下参数:字段类型描述capp 查看详情

java零基础学习集合框架

  以前集合框架是面试的主要内容,但是现在因为考的太多,反而不会问太多,只要天南海北的说,说到面试官觉得你完全准备了解过,便不会再多问。这里有张自己画的图可以理解下。   查看详情

java基础知识之什么是集合框架(代码片段)

Java基础知识之什么是集合框架,前面的文章,我们已经学习了Java的一些基础知识,比如泛型、注解等等内容,接着本博客继续学习Java中一个很常见的内容,集合。1、什么是Java中的集合框架?JavaCollections... 查看详情

day17java语言中的---list集合

...bsp; 在day16中已经讲了一下具体的set集合,今天在这个基础上在说一点list集合。主要包含有“ArrayList集合”和“linkedlist集合”以及“vector集合”,但是目前我们主要掌握和学习前面两种集合。重点在ArrayList集合上。在后续的... 查看详情

java零基础学习(set集合)(代码片段)

Java零基础学习(Set集合)Set集合概述及特点概述及特点 一个不包含重复元素的Collection。更确切地讲,set不包含满足eq.equals(e2)的元素e1和e2,并且最包含一个null元素HashSet存储字符串并遍历importjava.util.HashSet;publicclassMyTest2publicstati... 查看详情

java-web学习-java基础-集合i/o

目录Java标准库集合CollectionListSetMapCollectionsIO流流字节流FileInputStreamBufferInputStream字符流字符缓冲流Java标准库集合Java标准库中提供了大量的集合类,其核心为四个主要的类:Collection:单列集合,一次存一个元素Map:双列集合,存... 查看详情

day16java语言中的----set集合

...列的关系。这三大类的集合是我们再学习后面做下坚实的基础,这一章节很重要。下面就来了解 查看详情

尚硅谷_java零基础教程(集合collection:list,set;map)--学习笔记(代码片段)

Java集合一、Java集合框架概述1.理解2.集合框架涉及到的API二、Collection接口中的方法三、Iterator迭代器接口1.理解2.主要方法3.foreach四、Collection子接口一:List接口1.概述2.List接口的常用实现类3.接口方法五、Collection子接口二ÿ... 查看详情

java基础学习——19string类

之前的Java基础系列中讨论了Java最核心的概念,特别是面向对象的基础。在Java进阶中,我将对Java基础进行补充,并转向应用层面。 大部分编程语言都能够处理字符串(String)。字符串是有序的字符集合,比如"HelloWorld!"。在Java... 查看详情

day12java基础学习笔记

集合/集合框架(List)数组和集合的区别数组长度固定的,一旦定义,就无法改变集合长度可变数组中可以粗出基本数据类型,也可以是对象(实际上是对象的引用集合只能存储对象的引用)Java集合体系:分为Collection和Map两种... 查看详情

java基础-集合框架之set

ps:本人小菜一枚,所以本文是自我学习后的一篇总结,大虾请您飘过Set类概述Set是最简单的集合,集合中的对象不按照特定的方式排序,并且没有重复的对象。Set集合里多个对象之间没有明显的顺序,基本与Collection方法相同。... 查看详情

java语言基础--集合学习,arraylist和linkedlist

Collection<E>接口  这个接口是集合框架最顶级的接口,该接口扩展了Iterable接口,这意味着所有的集合类fore-each风格进行遍历。ArrayList与Linkedlist区别:  ArrayList是实现了基于动态数组,LinkedList基于链表。对于随机访问get... 查看详情

java中的collection集合(代码片段)

集合概述在前面基础班我们已经学习过并使用过集合ArrayList<E>,那么集合到底是什么呢?集合:集合是java中提供的一种容器,可以用来存储多个数据。集合和数组既然都是容器,它们有啥区别呢?数组的长度是固定的。集合的... 查看详情