集合和数组都是容器。
数组的特点:
数组适合的场景:
集合是Java中存储对象数据的一种容器。
集合的特点:
集合适合的场景:
集合类体系结构:
集合对于泛型的支持:
collection<String> lists = new ArrayList<String>(); Collection<String> lists = new ArrayListi>();// JDK 1.7开始后面的泛型类型申鸱可以省路不写
Collection集合常用APl:具体参考官方API文档Java Platform SE 8
import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; public class Main { public static void main(String[] args) { Collection<String> list = new ArrayList<>(); //1、添加元素,添加成功返回true list.add("java"); list.add("JAVA"); list.add("MySQL"); System.out.println(list.add("java")); //true System.out.println(list); //[java, JAVA, MySQL, java] //2、清空集合元素 // list.clear(); //System.out.println(list); //[] //3、判断集合是否为空,是空返回true,反之返回false System.out.println(list.isEmpty()); //false //4、获取集合的大小 System.out.println(list.size()); // 4 //5、判断集合中是否包含某个元素 System.out.println(list.contains("java")); //true System.out.println(list.contains("Java")); //false //6、删除某个元素:如果有多个重复元素,默认删除前面的第一个 System.out.println(list.remove("java")); //true System.out.println(list); //[JAVA, MySQL, java] System.out.println(list.remove("HTML")); //false System.out.println(list); // [JAVA, MySQL, java] //7、把集合转换成数组 Object[] arr = list.toArray(); System.out.println("数组"+ Arrays.toString(arr)); System.out.println("--------------拓展------------"); Collection<String> c = new ArrayList<>(); c.add("java"); c.add("JAVA"); Collection<String> c1 = new ArrayList<>(); c1.add("奥"); c1.add("利"); c1.add("奥"); //addAll把c1集合里面的元素全部倒入到c中去 c.addAll(c1); System.out.println(c); //[java, JAVA, 奥, 利, 奥] System.out.println(c1); //[奥, 利, 奥] } }
Collection集合的遍历方式:
方法名称 | 说明 |
Iterator<E> iterator() | 返回集合中的迭代器对象,该迭代器对象默认指向当前集合的0索引 |
方法名称 | 说明 |
boolean hasNext( ) | 询问当前位置是否有元素存在,存在返回true ,不存在返回false |
E next() | 获取当前位置的元素,并同时将迭代器对象移向下一个位置,注意防止取出越界。 |
for(元素数据类型变量名:数组或者Collection集合){ //在此处使用变量即可,该变量就是元素 } for( String str : list){ System.out.println(str); }
方法名称 | 说明 |
default void forEach(Consumer< ? super T> action) : | 结合lambda遍历集合 |
import java.util.ArrayList; import java.util.Collection; public class CollectionDemo { public static void main(String[] args) { Collection<String> lists = new ArrayList<>(); lists.add("奥"); lists.add("利"); lists.add("奥"); System.out.println(lists); //[奥, 利, 奥] // lists.forEach(new Consumer<String>() { // @Override // public void accept(String s) { // System.out.println(s); /* * 奥 * 利 * 奥 */ // } // }); //Lambda表达式遍历集合 lists.forEach( s->{ System.out.println(s); /* * 奥 * 利 * 奥 */ }); //简化形式 // lists.forEach( s->System.out.println(s)); //简化形式 // lists.forEach(System.out::println); } }
集合中存储的是元素对象的地址。