首页 > 编程语言 >Java 集合简介 一

Java 集合简介 一

时间:2022-10-18 22:00:29浏览次数:72  
标签:Java String 简介 List 接口 names 集合

什么是集合?

集合就是由若干个确定的元素所构成的整体。例如,5只小兔构成的集合:

在数学中,我们经常遇到集合的概念。例如:
● 有限集合
○ 一个班所有的同学构成的集合;
○ 一个网站所有的商品构成的集合;
● 无限集合
○ 整数集合
○ 有理数集合
○ 实数集合

为什么要在计算机中引入集合呢?

这是为了方便处理一组类似数据,例如:
● 计算所有同学的总成绩和平均成绩;
● 列举所有的商品名称和价格;
在 Java 中,如果一个 Java 对象可以在内部持有若干其它 Java 对象,并对外提供访问接口,我们把这种 Java 对象称为 集合。
案例:

String[] names = new String[10]; //可以持有 10 个 String 对象
names[0] = "Hello"; //放入 String 对象
names[1] = "World";
String name = names[0]; //获取 String 对象

既然 Java 提供了数组来充当集合,那么,为什么我们还需要其它集合类?
这是因为数组有如下限制:
● 数组大小固定不变
● 数组只能按索引存取
因此,我们需要各种不同类型的集合类来处理不同的数据,例如:
● 可变大小的顺序链表
● 保证无重复元素的集合

Collection

Java 标准库自带的 java.util包提供了集合类:Collection,它是除 Map外所有其它集合类的根接口。
Java 的 java.util包主要提供了以下三种类型的集合:
● List:一种有序列表的集合;
● Set:一种保证没有重复元素的集合;
● Map:一种通过键值(key-value)查找的映射表集合;

Java 集合的设计有以下几个特点:
● 实现了接口和实现类相分离。比如,有序表的接口是 List,具体的实现类有 ArrayList,LinkList 等;
● 支持泛型,我们可以限制在一个集合中只能放入同一种数据类型的元素。比如:List<String> list = new ArrayList<>();//只能放入 String 类型
Java 访问集合总是通过统一的方式——迭代器(Iterator)来实现,它最明显的好处在于无需知道集合内部元素是按什么方式存储的。

由于Java的集合设计非常久远,中间经历过大规模改进,我们要注意到有一小部分集合类是遗留类,不应该继续使用:
● Hashtable:一种线程安全的Map实现;
● Vector:一种线程安全的List实现;
● Stack:基于Vector实现的LIFO的栈。
还有一小部分接口是遗留接口,也不应该继续使用:
● Enumeration:已被Iterator取代。

参考文章

标签:Java,String,简介,List,接口,names,集合
From: https://www.cnblogs.com/chincode/p/16804362.html

相关文章

  • JavaScript学习--Array数组对象
    定义1.var变量名=newArray(元素列表);如vararr=newArray(1,2,3);2.常用:var变量名=[元素列表];如vararr=[1,2,3];访问arr[索引]=值;如arr[0]=1;ps:数组长度类型均可变 len......
  • JavaScript学习--基础语法03
    流程控制语句if,switch,for,while,dowhile。与之前学过的一样。 函数定义:通过function关键词定义语法:functionfunctionName(参数1,参数2) {  具体代码 }例子fu......
  • JavaScript学习--03
    运算符除了==和===其他和c语言都一样==:1.判断类型是否一样,如果不一样,则进行类型转换2.再去比较其值===:全等于1.判断类型是否一样,如果不一样,直接返回fa......
  • javaSE基础-抽象
    抽象(abstract)java关键字abstract,可用于修饰类、方法。抽象类格式:修饰符abstractclass类名{}1、此类不能实例化2、抽象类中一定有构造器,便于子类实例化时调用3、......
  • javaSE基础-接口
    接口(Interface)使用implements关键字使一个类遵循某个特定接口(或一组接口),它表示:接口只是外形。接口决定方法名、参数列表和返回类型,但是无法确定方法体。接口只提......
  • 通过netty把百度地图API获取的地理位置从Android端发送到Java服务器端
    本篇记录我在实现时的思考过程,写给之后可能遇到困难的我自己也给到需要帮助的人。写的比较浅显,见谅。在写项目代码的时候,需要把Android端的位置信息传输到服务器端,通过Ne......
  • Java 快速排序之一的 冒泡排序 效率较低 但是对新手比较友好
    packagetest;importjava.util.Scanner;importjava.util.Arrays;//把数组的内容全打印出来,并且加上中括号而且中间自己加入逗号。publicclassDay_19{publicstaticvo......
  • Java第五讲异常处理总结
    1.在运行上述代码时javac产生idiv字节码指令,在运行下面的程序时javac产生ddiv字节指令,导致了两段代码运行结果不同。2.      3.finally语句块一定会执行吗......
  • Java第四讲动手动脑
    1.  在以上的代码中,main方法调用的是publicvoidprintln(Objectx),这一方法调用了String类的valueOf方法,valueOf方法内部调用Object.toString方法:1publicString......
  • 解决 java.lang.IllegalStateException: Received message from unsupported version:
    问题:在SpringBoot下用SpringDataElasticsearch进行java对Elasticsearch进行单元测试控制台报错:NoNodeAvailableException[Noneoftheconfigurednodesareava......