Java中请说明集合类ArrayList与 HashMap的区别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中请说明集合类ArrayList与 HashMap的区别?相关的知识,希望对你有一定的参考价值。
参考技术A 首先就内部的元素而言,ArrayList储存的是单个对象,即ArrayList<String>
al
=
new
ArrayList<String>();
而HashMap储存的是一组一组的key和value,像:
HashMap<int,String>
hm
=
new
HashMap<int,String>();
这样。
另一个,就内部结构而言,ArrayList是有序的,而HashMap无序。
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);
那些注掉的需要大家自行测试,给大家留了一个实践的小机会,现在放开的执行结果如下:
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);
根据该需求我们代码的运行结果如下:
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());
根据该需求我们代码的运行结果如下:
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的区别(还没看)
如何序列化/反序列化(JSON)ArrayLIst wich has an ArrayLIst as field in Java