什么是集合呢?
集合是一种容器,用来装数据的,类似数组。
有数组,为什么还要学习集合呢?
数组定义完成并启动后,长度就固定了。
而集合是大小可变,开发中用的最多的。
集合的特点:大小可变,类型可以不固定,功能更加强大,适合做元素个数不能确定,同时存在增删改查的操作场景。
集合的种类非常多:
ArrayList该如何学呢?
1、会提供创建容器对象的方式;
2、会提供相应的方法对容器进行操作;
就是增删改查:
添加数据
删除某个数据
修改某个数据
获取某个数据
那么,1、创建对象; 2、增删改查的方法; 3、容器的其他特点
编程的时候使用第一个无参数构造器。
泛型:集合都是支持泛型的,约束集合在编译阶段只能操作某种数据类型。
注意:集合和泛型都不支持基本数据类型,只能支持引用数据类型。
注意:以后定义集合都应该支持泛型。
我的集合就是要什么都存:推荐这么写:
ArrayList<Object> list = new ArrayList();
ArrayList<E>
是用的最多的、最常见的一种集合。
代码:
package cn.ensource.arraylist;
import java.util.ArrayList;
/**
* 目标:要求同学们掌握如何创建ArrayList集合的对象,并熟悉ArrayList提供的常用方法
*/
public class ArrayListDemo1 {
public static void main(String[] args) {
// 1. 创建ArrayList集合对象
ArrayList list = new ArrayList();
list.add("黑马");
list.add(1);
list.add(99.5);
list.add("黑马");
list.add("Java");
System.out.println(list);
}
}
运行结果:
打印容器的地址,而是直接去打印容器里的内容。
让集合约束存储的类型,只能存储某种类型的数据,这就是泛型:
package cn.ensource.arraylist;
import java.util.ArrayList;
/**
* 目标:要求同学们掌握如何创建ArrayList集合的对象,并熟悉ArrayList提供的常用方法
*/
public class ArrayListDemo1 {
public static void main(String[] args) {
// 1. 创建ArrayList集合对象
// ArrayList<String> list = new ArrayList<String>();
// 从jdk1.7开始支持的写法:
ArrayList<String> list = new ArrayList<>();
list.add("黑马");
// list.add(1);
// list.add(99.5);
list.add("黑马");
list.add("Java");
System.out.println(list);
}
}
ArrayList的常用方法示例:
package cn.ensource.arraylist;
import java.util.ArrayList;
/**
* 目标:要求同学们掌握如何创建ArrayList集合的对象,并熟悉ArrayList提供的常用方法
*/
public class ArrayListDemo1 {
public static void main(String[] args) {
// 1. 创建ArrayList集合对象
// ArrayList<String> list = new ArrayList<String>();
// 从jdk1.7开始支持的写法:
ArrayList<String> list = new ArrayList<>();
list.add("黑马");
// list.add(1);
// list.add(99.5);
list.add("黑马");
list.add("Java");
System.out.println(list);
// 2. 往集合中的某个索引位置处添加一个数据
list.add(1, "MySQL");
System.out.println(list);
// 3. 获取某个索引位置的元素值
String rs = list.get(1);
System.out.println(rs);
// 4. 返回集合的元素个数
System.out.println(list.size());
// 5. 删除指定索引处的元素,返回被删除的元素
String rs2 = list.remove(1);
System.out.println(rs2);
System.out.println(list);
// 6. 删除指定的元素,返回删除是否成功
Boolean rs3 = list.remove("Java");
System.out.println(rs3);
System.out.println(list);
// 添加一个数据
list.add(1, "HTML");
System.out.println(list);
// 7. 如果删除黑马,则删除第一次出现的黑马被删除
System.out.println(list.remove("黑马")); // true 删除成功
System.out.println(list); // 第二个黑马没有被删除
// 8. set方法,把某个索引的值进行替换
list.set(0, "CentOS"); // 将HTML替换成CentOS
String rs5 = list.set(1, "黑马程序员");
System.out.println(rs5); // 打印被修改的元素
System.out.println(list);
}
}
再次说明:
==:
比较基本数据类型:比较具体的值。
比较引用数据类型:比较的是对象地址值。
equals:比较对象内容
equalsIgnoreCase: 比较内容忽略大小写
另外:
注意:集合容器中存储的是每个对象的什么东西?在堆内存中的地址。