目录
Collection系列集合
Collection集合的体系特点:
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
public class CollectionDemo01 {
public static void main(String[] args) {
Collection list=new ArrayList<>();
//list系列集合:添加的元素是有序,可重复,有索引
list.add("java");
list.add("Mybatis");
list.add(12);
list.add(23);
list.add(false);
list.add(true);
System.out.println(list);
//Set集合:添加的元素是无序,不重复,无索引
Collection set=new HashSet();
set.add("java");
set.add("Mybatis");
set.add(12);
set.add(23);
set.add(false);
set.add(true);
System.out.println(set);
//‘集合支持泛型
//集合和泛型都只能支持引用数据类型,不支持基本数据类型,所以集合中储存的元素都认为是对象
//集合中要储存基本数据类型要用包装类
Collection<Integer> collection1=new ArrayList<>();
collection1.add(10);
collection1.add(14);
collection1.add(14);
System.out.println(collection1);
}
}
Collection集合的常用API:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Objects;
public class CollectionAPI {
public static void main(String[] args) {
Collection<String>list=new ArrayList<>();
//1:添加元素
list.add("张三");
list.add("王麻子");
list.add("李四");
System.out.println(list);
//2:清空集合中的数据
// list.clear();
//3:判断集合是否为空
System.out.println(list.isEmpty());
//4:获取集合的大小
System.out.println(list.size());
//5:判断是否存在某个元素
list.contains("张三");
//6:删除某一个元素
list.remove("张三");//如有重复,只删除一个
//7:把集合转换为数组
Object[]arr=list.toArray();
System.out.println("数组"+ Arrays.toString(arr));
//8:合并两个集合
Collection<String>c1=new ArrayList<>();
c1.add("java");
c1.add("java");
Collection<String>c2=new ArrayList<>();
c2.add("小龙女");
c2.add("赵敏");
c1.addAll(c2);//把c2中的元素给c1
System.out.println(c1);
System.out.println(c2);
}
}
Collection集合的遍历方式:
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.function.Consumer;
public class CollectionDemo {
public static void main(String[] args) {
Collection<String> list = new ArrayList<>();
list.add("杨冬");
list.add("史强");
list.add("小龙女");
list.add("三体");
System.out.println(list);
//1:使用迭代器
// 得到当前迭代器对象
Iterator<String> it = list.iterator();
//定义一个while循环
while (it.hasNext()) {
String name = it.next();
System.out.println(name);
}
System.out.println("==================================");
//2:增强for循环,可以遍历集合和数组
//格式:
//for(元素数据类型 变量名:数组或Collection集合){
//在此处使用变量即可,该变量就是元素
//}
for (String arr : list) {
System.out.println(arr);
}
System.out.println("==================================");
//3:lambda表达式
list.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});
//---------------------------------------------------------
list.forEach(System.out::println);//这一行代码与小3表示的代码一致
}
}
Collection储存自定义类型的对象:
案例:
import java.util.ArrayList;
import java.util.Collection;
public class Test01 {
public static void main(String[] args) {
Collection<Movie>list=new ArrayList<>();
Movie m0=new Movie("长津湖","吴京",9.8);
Movie m1=new Movie("三体","不清楚",9.8);
list.add(m0);
list.add(m1);
list.forEach(System.out::println);
}
}
//============================电影类================================
public class Movie {
private String name;
private String actor;
private double score;
public Movie(){
}
public Movie(String name, String actor, double score) {
this.name = name;
this.actor = actor;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getActor() {
return actor;
}
public void setActor(String actor) {
this.actor = actor;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
@Override
public String toString() {
return "Movie{" +
"name='" + name + '\'' +
", actor='" + actor + '\'' +
", score=" + score +
'}';
}
}
List系列集合
List系列集合特点:
有序:储存和取出的元素顺序一致
有索引:可以通过索引操作元素
可重复:储存的元素可以重复
List集合的特有方法:
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class Test_02 {
public static void main(String[] args) {
List<String> list=new ArrayList<>();
list.add("三体");
list.add("龙族");
list.add("假如给我三天光明");
//1:在索引位置插入元素
list.add(2,"简爱");
//2:删除索引位置的元素
list.remove(2);
//3:根据索引获取元素
list.get(0);
//4:修改某处索引的元素
list.set(1,"java基础");
//此外Collection集合所具有的方法List都可以用
}
}
List系列集合遍历:
有四种,迭代器,增强for,lambda,for循环
这里写一下for循环,其他的本文上部已经写过。
import java.util.ArrayList; import java.util.Collection; import java.util.List; public class Test_02 { public static void main(String[] args) { List<String> list=new ArrayList<>(); list.add("三体"); list.add("龙族"); list.add("假如给我三天光明");for (int i = 0; i < list.size(); i++) { String a= list.get(i); System.out.println(a); }
LinkedList完成栈和队列结构:
import java.util.LinkedList;
public class Test_03 {
public static void main(String[] args) {
//LinkedList可以完成栈和队列结构(双链表)
LinkedList<String> list=new LinkedList<>();
//栈
list.addFirst("第一");
list.addFirst("第二");
list.addFirst("第三");
list.addFirst("第四");
System.out.println(list);
System.out.println(list.removeFirst());
System.out.println(list.removeFirst());
System.out.println(list.removeFirst());
System.out.println(list.removeFirst());
System.out.println("============================");
//队列
list.addLast("第一");
list.addLast("第二");
list.addLast("第三");
list.addLast("第四");
System.out.println(list);
System.out.println(list.removeFirst());
System.out.println(list.removeFirst());
System.out.println(list.removeFirst());
System.out.println(list.removeFirst());
}
}
删除集合中重复的元素:
import java.util.*;
public class ListDelete {
public static void main(String[] args) {
List<String> list=new ArrayList<>();
list.add("java");
list.add("java");
list.add("龙珠");
list.add("龙族");
//1:迭代器
// Iterator<String> it= list.iterator();
// while (it.hasNext()){
// String ele=it.next();
// if ("java".equals(ele)){
// //list.remove("java");//不能使用,会报错
// it.remove();//删除当前元素并且不会后移
// }
// }
//2:for循环
// for (int i = 0; i < list.size(); i++) {
// String ele= list.get(i);
// if("java".equals(ele)){
// list.remove("java");
// i--;
// }
// }
// System.out.println(list);
}
}