集合框架
集合框架
-
Collection父接口
- List(有序有下标可重复):
ArrayList(重点):数组结构实现,必须开辟连续空间,查询快、增删慢;默认容量是10;add、remove、contains、size
LinkedList :链表结构实现,无需开辟连续空间,增删快、查询慢;getFirst()、getLast()、removeFirst()、addFirst()
package com.oop.demo11; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; 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.size()); System.out.println(collection); System.out.println("=========================="); //(3)遍历元素(重点) //3.1使用增强for for (Object object:collection) { System.out.println(object); } System.out.println("====================="); //3.2使用迭代器(专门用来遍历集合的一种方式) //hasNext();有没有下一个元素 //next();获取下一个元素 //remove();删除当前元素 Iterator it=collection.iterator(); while (it.hasNext()){ String s=(String) it.next();//强制转换 System.out.println(s); //it.remove(); } System.out.println("元素个数"+collection.size()); //(4)判断 System.out.println(collection.contains("西瓜")); System.out.println(collection.isEmpty()); } }
package com.oop.demo11; public class Student { private String name; private int age; public Student(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", 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.oop.demo11; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; //Collection的使用:用来保存学生信息 public class Demo02 { public static void main(String[] args) { //新建Collection对象 Collection collection = new ArrayList(); Student s1 = new Student("张三", 20); Student s2 = new Student("李四", 18); Student s3 = new Student("王五", 22); //1.添加数据 collection.add(s1); collection.add(s2); collection.add(s3); System.out.println("元素个数" + collection.size()); System.out.println(collection); System.out.println("========================="); //2.删除 collection.remove(s1); System.out.println("删除之后:"+collection.size()); System.out.println(collection); System.out.println("========================="); //3.遍历 //3.1增强for for (Object object:collection) { Student s=(Student) object; System.out.println(s.toString()); } System.out.println("========================="); //3.2迭代器 Iterator it=collection.iterator(); while (it.hasNext()){ Student s=(Student) it.next(); System.out.println(s.toString()); } System.out.println("========================="); //4判断 System.out.println(collection.contains(s1)); System.out.println(collection.isEmpty()); } }
package com.oop.demo11; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; //List接口的使用 public class Demo03 { public static void main(String[] args) { //先创建集合对象 List list=new ArrayList(); //1添加元素 list.add("苹果"); list.add("小米"); list.add(0,"华为"); System.out.println("元素个数"+list.size()); System.out.println(list.toString()); System.out.println("===================="); //2.删除元素 list.remove(0); System.out.println("删除后元素"+list.size()); System.out.println(list.toString()); System.out.println("===================="); //3.遍历 //3.1使用for遍历(因为它有下标) for (int i=0;i<list.size();i++){ System.out.println(list.get(i)); } System.out.println("===================="); //3.2使用增强for for (Object object:list) { System.out.println(object); } System.out.println("===================="); //3.3使用迭代器 Iterator it=list.iterator(); while(it.hasNext()){ System.out.println(it.next()); } //3.4使用列表迭代器,可以向前或向后遍历,添加、删除、修改元素 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()); } //4.判断 System.out.println("======判断========="); System.out.println(list.contains("苹果")); System.out.println(list.isEmpty()); //5.获取位置 System.out.println(list.indexOf("小米")); } }

package com.oop.demo11; import java.util.ArrayList; import java.util.List; public class Demo04 { public static void main(String[] args) { //创建集合 List list=new ArrayList(); //添加数字数据(自动装箱) list.add(20); list.add(30); list.add(40); list.add(50); list.add(60); System.out.println(list.size()); System.out.println(list.toString()); //删除操作 list.remove(0);//等价于list.remove(new Integer(20)),等价于list.remove((Object)20) System.out.println("删除之后个数"+list.size()); System.out.println(list.toString()); //3.补充方法subList:返回子集合 List subList=list.subList(1,3);//包含1,不包含3,即含头不含尾 System.out.println(subList);//注意之前删除了20 } }
package com.oop.demo11; import java.util.ArrayList; import java.util.Iterator; import java.util.ListIterator; public class Demo05 { public static void main(String[] args) { //创建集合 ArrayList arrayList = new ArrayList<>(); //1.添加元素 Student s1 = new Student("刘德华",20); Student s2 = new Student("郭富城",22); Student s3 = new Student("梁朝伟",18); arrayList.add(s1); arrayList.add(s2); arrayList.add(s3); System.out.println("元素个数:"+arrayList.size()); System.out.println(arrayList.toString()); System.out.println("==================="); //2.删除元素 arrayList.remove(new Student("刘德华",20));//equals(this==obj) System.out.println("删除之后元素个数:"+arrayList.size()); System.out.println(arrayList.toString()); System.out.println("======================="); //3.遍历元素(重点) //3.1使用迭代器 Iterator it = arrayList.iterator(); while(it.hasNext()){ Student s=(Student)it.next(); System.out.println(s.toString()); } System.out.println("===================="); //3.2使用列表迭代器 ListIterator lit=arrayList.listIterator(); while (lit.hasNext()){ Student s=(Student)lit.next(); System.out.println(s.toString()); } System.out.println("==================="); //4.判断 System.out.println(arrayList.contains(new Student("梁朝伟",18))); System.out.println(arrayList.isEmpty()); //5.查找 System.out.println(arrayList.indexOf(new Student("梁朝伟",18))); } } package com.oop.demo11; import java.util.Objects; public class Student { private String name; private int age; public Student(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", 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; } @Override public boolean equals(Object obj) { //1.判断是不是同一个对象 if (this == obj) return true; //2.判断是否为空 if (obj == null) return false; //3.判断是否是Student类型 if (obj instanceof Student) { Student s = (Student) obj; //4.比较属性 if (this.name.equals(s.getName()) && this.age == s.getAge()) { return true; } } //5.不满足条件 return false; } }
package com.oop.demo11; import java.util.Iterator; import java.util.LinkedList; import java.util.ListIterator; /** * LinkedList的使用 * 存储结构:双向链表 * */ public class Demo06 { public static void main(String[] args) { //创建机会 LinkedList linkedList = new LinkedList<>(); //1.添加元素 Student s1 = new Student("刘德华",20); Student s2 = new Student("郭富城",22); Student s3 = new Student("梁朝伟",18); linkedList.add(s1); linkedList.add(s2); linkedList.add(s3); System.out.println("元数个数:"+linkedList.size()); System.out.println(linkedList.toString()); System.out.println("==============="); //2.删除 linkedList.remove(s1); System.out.println("删除之后:"+linkedList.size()); System.out.println(linkedList.toString()); //3.遍历 //3.1for遍历 System.out.println("========for遍历======"); for (int i=0;i<linkedList.size();i++){ System.out.println(linkedList.get(i)); } //3.2增强for System.out.println("======增强for======"); for (Object object:linkedList) { Student s=(Student) object; System.out.println(s.toString()); } System.out.println("======迭代器======"); //3.3使用迭代器 Iterator it=linkedList.iterator(); while (it.hasNext()){ Student s=(Student)it.next(); System.out.println(s.toString()); } System.out.println("======列表迭代器======"); ListIterator lit = linkedList.listIterator(); while (lit.hasNext()){ Student s=(Student)lit.next(); System.out.println(s.toString()); } //4.判断 System.out.println(linkedList.contains(s2)); System.out.println(linkedList.isEmpty()); //5.获取 System.out.println(linkedList.indexOf(s2)); } }








浙公网安备 33010602011771号