Java集合 为什么出现集合类: 我们学习的是面向对象的编程语言,面向对象的编程语言对事物的描述都是通过对象体现的, 为了方便对多个对象进行操作,我们就必须把这多个对象进行存储,而要想存储多个对象,就不能是 基本的变量了,应该是一个容器类型的变量。回顾我们学过的知识,有哪些是容器类型的呢? 数组,StringBuilder 首先说StringBuilder,它的结果是一个字符串,不一定满足我们的需求,所以我们只能 选择数组了,而数组的长度固定,不能适应变化的需求,在这种情况下,Java就提供了集合类供我们使用。 由此可见,集合类的长度是可变的。 集合类的特点:长度可变 1.1.1 Collection集合的成员方法booleanadd(E e):添加元素 booleanremove(Object o):从集合中移除元素 voidclear():清空集合中的元素 booleancontains(Object o):判断集合中是否存在指定的元素 booleanisEmpty():判断集合是否为空 int size():集合的长度,也就是集合中元素的个数 packagecom.itheima_01; importjava.util.ArrayList; importjava.util.Collection; /* * boolean add(E e):添加元素 * boolean remove(Object o):从集合中移除元素 * void clear():清空集合中的元素 * boolean contains(Object o):判断集合中是否存在指定的元素 * boolean isEmpty():判断集合是否为空 * int size():集合的长度,也就是集合中元素的个数 */ publicclass CollectionDemo2 { public static void main(String[] args) { //创建集合对象 Collection<String> c = newArrayList<String>(); //boolean add(E e):添加元素 //System.out.println("add:"+c.add("hello")); //System.out.println("add:"+c.add("world")); //通过查看源码,我们知道ArrayList集合的add方法的返回值永远都是true c.add("hello"); c.add("world"); c.add("java"); //boolean remove(Object o):从集合中移除元素 //System.out.println("remove:"+c.remove("world")); //System.out.println("remove:"+c.remove("haha")); //void clear():清空集合中的元素 //c.clear(); //boolean contains(Object o):判断集合中是否存在指定的元素 //System.out.println("contains:"+c.contains("world")); //System.out.println("contains:"+c.contains("haha")); //boolean isEmpty():判断集合是否为空 //System.out.println("isEmpty:"+c.isEmpty()); System.out.println("size:"+c.size()); //输出集合对象 System.out.println(c); } } 1.2 增强for的概述和使用增强for:是for循环的一种 格式: for(元素的数据类型 变量名 : 数组名或者Collection集合对象名) { 使用变量名即可,这个变量名代表的其实就是数组或者Collection集合中的元素 } 好处:简化了数组和Collection集合的遍历 弊端:目标不能为null。如何保证呢?在遍历前先对目标进行不为null的判断。 1.2.1 List集合子类特点及ArrayList集合存储字符串并遍历List: ArrayList:底层数据结构是数组,查询快,增删慢 LinkedList:底层数据结构是链表,查询慢,增删快 ArrayList存储字符串并遍历: A:迭代器 B:普通for C:增强for package com.itheima_02; public class Student { private String name; private int age; public Student() { } public Student(Stringname, int age) { this.name =name; this.age =age; } public StringgetName() { return name; } public voidsetName(String name) { this.name =name; } public int getAge() { return age; } public void setAge(intage) { this.age =age; } } package com.itheima_02; import java.util.ArrayList; import java.util.Iterator; /* * ArrayList集合存储自定义对象并遍历 * 提示:自定义一个学生类,给出成员变量name和age。遍历集合的时候,在控制台输出学生对象的成员变量值。 * 三种方式遍历 * 迭代器 * 普通for * 增强for * * LinkedList的使用和ArrayList的相似,所以LinkedList的练习需要大家自己做 */ public class ArrayListTest { public static voidmain(String[] args) { //创建集合对象 ArrayList<Student>array = new ArrayList<Student>(); //创建元素对象 Student s1 =new Student("林青霞",30); Student s2 =new Student("张曼玉",35); Student s3 =new Student("王祖贤",33); //把元素添加到集合 array.add(s1); array.add(s2); array.add(s3); //迭代器 Iterator<Student>it = array.iterator(); while(it.hasNext()){ Students = it.next(); System.out.println(s.getName()+"---"+s.getAge()); } System.out.println("----------------------"); //普通for for(int x=0;x<array.size(); x++) { Students = array.get(x); System.out.println(s.getName()+"---"+s.getAge()); } System.out.println("----------------------"); //增强for for(Students : array) { System.out.println(s.getName()+"---"+s.getAge()); } } }
|