1.集合和数组的区别 数组长度是固定的,集合长度是可变的 数组可以存储基本类型和引用类型,集合只能存储引用类型 2.Collection体系集合 List接口的特点: 有序、有下标、元素可重复
-
数组长度是固定的,集合长度是可变的
-
数组可以存储基本类型和引用类型,集合只能存储引用类型
List接口的特点:
有序、有下标、元素可重复
Set接口的特点:
无序、无下标、元素不能重复
2.1Collection父接口特点:代表一组任意类型的对象,无序、无下标、不能重复
方法:
-
boolean add(Object obj) //添加一个对象
-
boolean addAll(Collection c) //将一个集合中的所有对象添加到此集合中
-
void clear() //清空此集合中的所有对象
-
boolean contains(Object o) //检查此集合中是否包含o对象
-
boolean equals(Object o) //比较此集合是否与指定对象相等
-
boolean isEmpty() //判断此集合是否为空
-
boolean remove(Object o) //在此集合中移除o对象
-
int size() //返回此集合中的元素个数
-
Object[] toArray() //将此集合转换成数组
collection操作:
package com.framework.collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
Collection接口的使用
1。添加元素
2。删除元素
3。遍历元素
4。判断
*/
public class Demo01 {
public static void main(String[] args) {
//创建一个集合
Collection collection = new ArrayList();
//1。添加元素
collection.add("苹果");
collection.add("榴莲");
collection.add("香蕉");
System.out.println("元素个数:" + collection.size());
System.out.println(collection);
//2。删除元素
collection.remove("榴莲");
System.out.println("剩下的元素:" + collection);
System.out.println("===========================================");
//清空 collection.clear();
//3。遍历元素
//增强for循环
for (Object object: collection) {
System.out.println(object);
}
System.out.println("===========================================");
//使用迭代器(专门用于遍历集合的方式)
//hasNext();有没有下一个元素
//next();获取下一个元素
//remove();删除当前元素
Iterator it = collection.iterator();
while (it.hasNext()){
String s = (String) it.next();
System.out.println(s);
it.remove();
}//迭代器迭代过程中不能使用collection删除方法删除元素
System.out.println(collection.size());
System.out.println("===========================================");
//4。判断
System.out.println(collection.contains("苹果"));
System.out.println(collection.isEmpty());
}
}
package com.framework.collection;
import org.w3c.dom.ls.LSOutput;
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
package com.framework.collection;
import java.util.ArrayList;
import java.util.Collection;
public class Demo02 {
public static void main(String[] args) {
//collection的使用
//新建一个collection对象
Collection collection = new ArrayList();
Student s1 = new Student("zhangsan", 22);
Student s2 = new Student("zhao", 21);
Student s3 = new Student("wang", 20);
//添加学生数据
collection.add(s1);
collection.add(s2);
collection.add(s3);
collection.add(s3);
System.out.println("元素个数:" + collection.size());
System.out.println(collection.toString());
//删除
collection.clear();//对象和集合都在堆中,集合中储存的是对象的地址,删除是删除集合中的地址,对象还在
System.out.println("删除之后:" + collection.toString());
//遍历
//增强for
System.out.println("==========================================");
for (Object object: collection) {
Student s = (Student) object;
System.out.println(s.toString());
}
System.out.println("==========================================");
//迭代器
Iterator it = collection.iterator();
while (it.hasNext()){
Student s = (Student) it.next();
System.out.println(s.toString());
}
//判断
System.out.println(collection.contains(s1));
System.out.println(collection.isEmpty());
}
}
3.List集合
特点:有序、有下标、元素可以重复
方法:
-
void add(int index,Object o) //在index位置插入对象o
-
boolean addAll(int index,Collection c) //将一个集合中的元素添加到此集合中的index位置
-
Object get(int index) //返回集合中指定位置的元素
-
List subList(int fromIndex , int toIndex) //返回fromIndex和toIndex之间的集合元素
package com.framework.list;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class Demo01 {
public static void main(String[] args) {
//先创建集合对象
List list = new ArrayList();
//添加元素
list.add("手机");
list.add("手表");
list.add("电脑");
System.out.println("元素的个数:" + list.size());
System.out.println(list.toString());
//删除
//list.remove("手机");
list.remove(0);
System.out.println("删除之后:" + list.toString());
//遍历
//for
for (int i = 0; i < list.size(); i++) {
String s = (String) list.get(i);
System.out.println(s);
}
System.out.println("=========================");
//增强for
for (Object o : list) {
System.out.println(o);
}
System.out.println("=========================");
//迭代器
Iterator it = list.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
System.out.println("==========================");
//使用列表迭代器,和Iterator区别
//listIterator可以向前或向后遍历,添加,删除,修改元素
ListIterator lit = list.listIterator();
System.out.println("=============使用列表迭代器从前往后=================");
while (lit.hasNext()){
System.out.println(lit.nextIndex() + ":" + lit.next());
}
System.out.println("=============使用列表迭代器从后往前=================");
while (lit.hasPrevious()){
System.out.println(lit.previousIndex() + ":" + lit.previous());
}
System.out.println("============================");
//判断
System.out.println(list.contains("电脑"));
System.out.println(list.isEmpty());
System.out.println("============================");
//获取位置