集合:
在编程中,我们需要管理很多对象集,比如某班全部的同学信息,某个公司的人员资料等等。JAVA集合就是提供某种数据结构的支持,即存放对象,并让这些对象按照某种数据结构存放。
集合与数组的区别:
1. 数组存放的元素个数是在定义数组时固定的。
集合可以通过方法添加、删除元素、
2. 数组存放的类型是统一的。
集合存放的类型可以不统一。
Collection是List和set的父接口,封装了子接口List与Set的常用方法
List中最常用的两个子类:ArrayList和LinkedList
Set中最常用的两个子类:HashSet和TreeSet
Map中最常用的两个子类:HashMap和TreeMap
List中的常用方法:
size(): 查看集合大小,即长度
add(): 向集合中添加数据
get(): 通过下标获取集合中的数据
set(int index, E element): 通过下标修改集合中的数据
remove(): 通过下标或值修改集合中的数据,如果参数是值,那么只删除第一个是该值的数据
clear(): 清除集合中的所有数据
contains(): 判断集合中是否包含某个数据
List的遍历方式:
for循环:
for(int i = 0 ; i < list.size() ; i ++){ System.out.println(list.get(i)); }
foreach循环
for(Object o : list){ System.out.println(o); }
iterator迭代器循环
Iterator iter = list.iterator(); while(iter.hasNext()){ System.out.println(iter.next()); }
使用迭代器循环要注意一点:如果集合中存储的是对象,那么循环中不能出现两次以上的iter.next()语句,因此,需要先定义一个对象接收循环出来的值,再使用对象调用属性进行打印,代码如下:
Iterator iter = list.iterator(); while(tier.hasNext()){ Student stu = tier.next(); Sytem.out.println("学生姓名:" + stu.name + "学生年龄:" + stu.age); }
ArrayList集合的遍历
package com.qianfeng.test; import java.util.ArrayList; import java.util.Iterator; /* * ArrayList:有序的,可以重复的. * 要求:用ArrayList存储数据,但是有序的,不重复的. * */ public class Demo6 { public static void main(String[] args) { ArrayList list = new ArrayList<>(); list.add("java1");//第一个 list.add("java2");//第二个 list.add("java2");//第三个 list.add("java4"); list.add("java5"); list.add("java6"); //去重 //创建一个临时的集合用于存储去重后的元素 ArrayList list1 = new ArrayList<>(); //遍历list Iterator iterator = list.iterator(); while (iterator.hasNext()) { String string = (String) iterator.next(); //当list1中没有string的时候,就添加进去 //如果新的集合中不包含当前的元素,就将当前的元素添加进去 /* * 原理:在添加新元素的时候,返回调用元素的equals方法,去比较,所有的都返回false,整体认为是false.有一次比较 * 返回true,整个contains的结果就是true * * 添加第三个元素的过程: * 第三个元素.equels("java1") = false 继续比 第三个元素.equels("java2") = true 停止比较 */ if(!list1.contains(string)) { list1.add(string); } } System.out.println(list1); } }