Java 入门 33 集合Collection 及常用API
package com.ITheima.Collection; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; /** * 目标:明确Collection 集合体系的特点 */ public class Test { public static void main(String[] args) { //有序 可重复 有索引 Collection list=new ArrayList(); list.add("java"); list.add("JS"); list.add("Python"); list.add("HTML"); System.out.println(list); //无序 不重复 无索引 Collection list1=new HashSet(); list1.add("JAVA1"); list1.add("JAVA2"); list1.add("JAVA3"); list1.add("JAVA4"); list1.add("JAVA5"); list1.add("false"); System.out.println(list1); } }
package com.ITheima.Collection; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; /** * 目标:明确Collection 集合体系的特点 */ public class Test { public static void main(String[] args) { //有序 可重复 有索引 Collection list=new ArrayList(); list.add("java"); list.add("JS"); list.add("Python"); list.add("HTML"); System.out.println(list); //无序 不重复 无索引 Collection list1=new HashSet(); list1.add("JAVA1"); list1.add("JAVA2"); list1.add("JAVA3"); list1.add("JAVA4"); list1.add("JAVA5"); list1.add("false"); System.out.println(list1); Collection<String> list2=new ArrayList<>(); list2.add("JAV"); list2.add("前端"); //集合和泛型不支持基本数据类型 只能支持引用数据类型 Collection<Integer> list3=new ArrayList<>(); list3.add(23); list3.add(234); list3.add(235); Collection<Double> list4=new ArrayList<>(); list4.add(23.4); list4.add(23.5); list4.add(23.6); } }
package com.ITheima.Collection; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; /** 目标:Collection集合的常用API. Collection是集合的祖宗类,它的功能是全部集合都可以继承使用的,所以要学习它。 Collection API如下: - public boolean add(E e): 把给定的对象添加到当前集合中 。 - public void clear() :清空集合中所有的元素。 - public boolean remove(E e): 把给定的对象在当前集合中删除。 - public boolean contains(Object obj): 判断当前集合中是否包含给定的对象。 - public boolean isEmpty(): 判断当前集合是否为空。 - public int size(): 返回集合中元素的个数。 - public Object[] toArray(): 把集合中的元素,存储到数组中。 小结: 记住以上API。 */ public class Test1 { public static void main(String[] args) { //HashSet:添加的元素是无序,不重复,无索引 Collection<String> c=new ArrayList<>(); //1 添加元素,添加成功返回true c.add("JAVA"); c.add("HTML"); System.out.println(c.add("HTML")); c.add("MYSQL"); c.add("Java"); System.out.println(c.add("白马"));//true System.out.println(c);//[JAVA, HTML, HTML, MYSQL, Java, 白马] //2 清空集合的元素 // c.clear(); // System.out.println(c); //3 判断集合是否为空,空返回true,反之返回false // System.out.println(c.isEmpty());//true // 4 获取集合的大小 System.out.println(c.size());//6 //5 判断集合中是否包含某个元素 System.out.println(c.contains("Java"));//true System.out.println(c.contains("黑马"));//false //6 删除将某个元素:如果有多个重复元素 默认删除前面的第一个 System.out.println(c.remove("JAVA"));//true System.out.println(c); // 7 把集合转换成数组 Object[] arr=c.toArray(); System.out.println("数组:"+ Arrays.toString(arr));//数组:[HTML, HTML, MYSQL, Java, 白马] System.out.println("-----------扩展------------"); Collection<String> c1=new ArrayList<>(); c1.add("Java1"); c1.add("Java2"); Collection<String> c2=new ArrayList<>(); c2.add("赵敏"); c2.add("张无忌"); //把addAll把c2集合中的元素全部倒入c1中去 c1.addAll(c2); System.out.println(c1);//[Java1, Java2, 赵敏, 张无忌] System.out.println(c2);//[赵敏, 张无忌] } }
package com.ITheima.Collection; import com.ITheima.Utils.ArrayTool; import java.util.ArrayList; import java.util.Iterator; /** 目标:Collection集合的遍历方式。 什么是遍历? 为什么开发中要遍历? 遍历就是一个一个的把容器中的元素访问一遍。 开发中经常要统计元素的总和,找最值,找出某个数据然后干掉等等业务都需要遍历。 Collection集合的遍历方式是全部集合都可以直接使用的,所以我们学习它。 Collection集合的遍历方式有三种: (1)迭代器。 (2)foreach(增强for循环)。 (3)JDK 1.8开始之后的新技术Lambda表达式(了解) a.迭代器遍历集合。 -- 方法: public Iterator iterator(): 获取集合对应的迭代器,用来遍历集合中的元素的 boolean hasNext():判断是否有下一个元素,有返回true ,反之。 E next():获取下一个元素值! --流程: 1.先获取当前集合的迭代器 Iterator<String> it = lists.iterator(); 2.定义一个while循环,问一次取一次。 通过it.hasNext()询问是否有下一个元素,有就通过 it.next()取出下一个元素。 小结: 记住代码。 */ public class Test2 { public static void main(String[] args) { ArrayList<String> lists=new ArrayList<>(); lists.add("张无忌"); lists.add("赵敏"); lists.add("小昭"); System.out.println(lists);//[张无忌, 赵敏, 小昭] System.out.println("--------------------------"); //1 得到当前集合的迭代器对象 Iterator<String> it=lists.iterator(); //迭代器next() /* String ele= it.next(); System.out.println( it.next()); System.out.println( it.next()); System.out.println( it.next());*/ //2 定义while循环 //it.hasNext() 判断当前集合是否还有为遍历的元素 while (it.hasNext()){ String ele=it.next(); System.out.println(ele); } } }
package com.ITheima.Collection; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; public class Test3 { public static void main(String[] args) { Collection<String> lists=new ArrayList<>(); lists.add("张三"); lists.add("李四"); lists.add("王五"); //list.for +回车键 快速生成 集合for循环迭代器 for (String ele : lists) { System.out.println(ele); } double[] scores={109,12,435,677}; for (double score : scores) { System.out.println(score); if(score==12){ score=199;//修改无意义 不会影响数组的值 } } System.out.println(Arrays.toString(scores));//[109.0, 12.0, 435.0, 677.0] } }
package com.ITheima.Collection; import java.util.ArrayList; import java.util.Collection; import java.util.function.Consumer; public class Test4 { public static void main(String[] args) { Collection<String> lists=new ArrayList<>(); lists.add("张三"); lists.add("李四"); lists.add("王五"); System.out.println(lists); //forEach 遍历对象 // lists.forEach(new Consumer<String>() { // @Override // public void accept(String s) { // System.out.println(s); // } // }); //简化形式 lists.forEach(s->{ System.out.println(s); }); } }
Movie 类
package com.ITheima.Collection; public class Movie { private String name; private double score; private String actor; public Movie() { } public Movie(String name, double score, String actor) { this.name = name; this.score = score; this.actor = actor; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } public String getActor() { return actor; } public void setActor(String actor) { this.actor = actor; } }
Test类
package com.ITheima.Collection; import java.util.ArrayList; import java.util.Collection; import java.util.function.Consumer; public class TestDemo { public static void main(String[] args) { //1定义一个电影类 Collection<Movie> movies=new ArrayList<>(); //2 定义一个集合对象存储3部电影对象 movies.add(new Movie("《你好,李焕英》", 9.5, "张小斐,贾玲,沈腾,陈赫")); movies.add(new Movie("《唐人街探案》", 8.5, "王宝强,刘昊然,美女")); movies.add(new Movie("《刺杀小说家》",8.6, "雷佳音,杨幂")); //3 遍历集合中的每个电影对象 movies.forEach((s)->{ System.out.println("片名"+s.getName()); System.out.println("得分"+s.getScore()); System.out.println("主演"+s.getActor()); }); } }