Java中请说明集合类ArrayList与 HashMap的区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中请说明集合类ArrayList与 HashMap的区别?相关的知识,希望对你有一定的参考价值。

他们的区别在于:ArrayList是有序的,会确保以一定的顺序保存元素,而HashMap是无需存储,并且是通过键值对的形式。
ArrayList:是一个list集合的实现类,动态存储多个对象,集合的长度随着集合中的对象的个数而变化。
HashMap:是map的一个实现类,存储一对对象(key-value)。通过key来查找value。(键值对中:一个键最多对应1个值。map中的key不能重复,不能是重复的对象。)
扩展:list中是以数组的结构实现存储数据,高效查找,低效修改,说道数组,他和list的区别就是:数组初始化的时候必须声明数据的数量,而list是根据你加的数据的个数而变化。
参考技术A 都属于数据的“集合”工具,
ArrayList 数列结构,有点像数组"int a[]"的高级版本,基本上和Vector一样的功能。。
连性能上也和vector一样,但没有vector那样的线程安全性,都属于可以动态伸缩的数列。

HashMap,数据结构上叫“散列图”结构, 实用上其实是“关联数组”。
存储“键-值”对应的一组2个对象。比如“姓名”对应“张三”
和VB、python中的“字典”一回事。

加分加分

JAVA容器之ArrayList集合详解

1.ArrayList类

1.1ArrayList类概述

在java中,我们会经常使用集合,集合是我们Java SE中最为重要的一个模块,当我们在创建一个List集合的时候,往往就会使用​​new ArrayList()​;因此,这个是特别重要的,本文给大家详细讲述该相关的知识点,并且会通过大量的案例加以说明。

  • 什么是集合

提供一种存储空间可变的存储模型,存储的数据容量可以发生改变

  • ArrayList集合的特点

底层是数组实现的,长度可以变化

  • 泛型的使用

用于约束集合中存储元素的数据类型


1.2ArrayList类常用方法

我们可以通过​​上篇文章​​学习的API去查看ArryList的相关用法以及解释,刚好的一个练习使用API的机会。

1.2.1构造方法

方法名

说明

public ArrayList()

创建一个空的集合对象

1.2.2成员方法

方法名

说明

public boolean remove(Object o)

删除指定的元素,返回删除是否成功

public E remove(int index)

删除指定索引处的元素,返回被删除的元素

public E set(int index,E element)

修改指定索引处的元素,返回被修改的元素

public E get(int index)

返回指定索引处的元素

public int size()

返回集合中的元素的个数

public boolean add(E e)

将指定的元素追加到此集合的末尾

public void add(int index,E element)

在此集合中的指定位置插入指定的元素

1.2.3示例代码

public class ArrayListDemo02 
public static void main(String[] args)
//创建集合
ArrayList<String> array = new ArrayList<String>();

//添加元素
array.add("hello");
array.add("51CTO");
array.add("一计之长");

//public boolean remove(Object o):删除指定的元素,返回删除是否成功
// System.out.println(array.remove("world"));
// System.out.println(array.remove("javaee"));

//public E remove(int index):删除指定索引处的元素,返回被删除的元素
// System.out.println(array.remove(1));

//IndexOutOfBoundsException
// System.out.println(array.remove(3));

//public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
// System.out.println(array.set(1,"javaee"));

//IndexOutOfBoundsException
// System.out.println(array.set(3,"javaee"));

//public E get(int index):返回指定索引处的元素
// System.out.println(array.get(0));
// System.out.println(array.get(1));
// System.out.println(array.get(2));
//System.out.println(array.get(3));

//public int size():返回集合中的元素的个数
System.out.println(array.size());

//输出集合
System.out.println("array:" + array);

那些注掉的需要大家自行测试,给大家留了一个实践的小机会,现在放开的执行结果如下:

JAVA容器之ArrayList集合详解_java

1.3ArrayList存储字符串并遍历

1.3.1案例需求

创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历该集合。

根据该需求,我们给出如下的解题思路:
1:创建集合对象
2:往集合中添加字符串对象
3:遍历集合,首先要能够获取到集合中的每一个元素,这个通过​​​get(int index)​​​方法实现
4:遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现
5:遍历集合的通用格式

1.3.2代码实现

根据该需求和思路,我们给出以下的实现代码:

public class ArrayListTest01 
public static void main(String[] args)
//创建集合对象
ArrayList<String> array = new ArrayList<String>();

//往集合中添加字符串对象
array.add("一计之长");
array.add("左冷禅");
array.add("风清扬");

//遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现
// System.out.println(array.size());

//遍历集合的通用格式
for(int i=0; i<array.size(); i++)
String s = array.get(i);
System.out.println(s);


根据该需求我们代码的运行结果如下:

JAVA容器之ArrayList集合详解_java

1.4ArrayList存储学生对象并遍历

1.4.1案例需求

创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合。

具体我们通过该需求给出相应的实现思路:

1:定义学生类
2:创建集合对象
3:创建学生对象
4:添加学生对象到集合中
5:遍历集合,采用通用遍历格式实现

1.4.2代码实现

根据该需求和思路,我们给出以下的实现代码,首先我们给出Student相应的代码,具体如下:

/*
学生类
*/
public class Student
private String name;
private int age;

public Student()

public Student(String name,int age)
this.name = name;
this.age = age;


public void setName(String name)
this.name = name;


public String getName()
return name;


public void setAge(int age)
this.age = age;


public int getAge()
return age;

接着给出该需求相应的实现代码:

public class ArrayListTest02 
public static void main(String[] args)
//创建集合对象
ArrayList<Student> array = new ArrayList<>();

//创建学生对象
Student s1 = new Student("一计之长", 5);
Student s2 = new Student("51CTO", 12);
Student s3 = new Student("stefan", 26);

//添加学生对象到集合中
array.add(s1);
array.add(s2);
array.add(s3);

//遍历集合,采用通用遍历格式实现
for (int i = 0; i < array.size(); i++)
Student s = array.get(i);
System.out.println(s.getName() + "," + s.getAge());


根据该需求我们代码的运行结果如下:

JAVA容器之ArrayList集合详解_键盘录入_03

1.5ArrayList存储学生对象并遍历升级版

1.5.1案例需求

创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合 学生的姓名和年龄来自于键盘录入。

根据该需求,我们给出以下的思路:
1:定义学生类,为了键盘录入数据方便,把学生类中的成员变量都定义为​​​String​​​类型
2:创建集合对象
3:键盘录入学生对象所需要的数据
4:创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
5:往集合中添加学生对象
6:遍历集合,采用通用遍历格式实现

1.5.2代码实现

根据该需求以及思路,我们给出相应的代码实现:

public class ArrayListTest 
Java集合

深入解析 Java集合类ArrayList与Vector的区别

深入解析 Java集合类ArrayList与Vector的区别(还没看)

JAVA容器之ArrayList集合详解

如何序列化/反序列化(JSON)ArrayLIst wich has an ArrayLIst as field in Java

java基础:自定义类ArrayList集合