java 之 Collection类
Collection类
List: 可以放入重复元素 支持随机访问(有下标) 可以插入元素【在指定下标插入】add(index, e) Set: 不可以放入重复元素 不支持随机访问(无下标) 不能插入元素 Queue: 可以放入重复元素 不支持随机访问(无下标) 不能插入元素
list类
package com.gongxy.demo.collectionstudy; import java.util.ArrayList; import java.util.LinkedList; /** * Collection * 一些基本方法: * 1、add(e) 添加元素 * 2、clear() 清空所有元素 * 3、size() 获取元素长度 * 4、isEmpty() 是否无元素 * 5、toArray(T[]) 转换为指定类型数组 * 6、toArray() 转换为Object数组 * 7、remove(o) 删除指定元素 * 8、contains(o) 是否包含元素 * - List 类 * ArrayList 与 LinkedList 的区别 * ArrayList * 1、默认长度是10 * 2、使用数组实现(对数据查询较多时使用,修改删除较慢) * LinkedList * 1、使用链表实现(对数据修改频繁时使用,随机访问较慢) * 2、可用于存放不确定个数的元素 */ public class ListTest { public static void main(String[] args) { linkedListTest(); } /** * ArrayList类 * extends Collection * 常用方法 * 1、add(index, e) 指定下标添加元素 * 2、get(index) 获取指定下标元素 * 3、indexOf(obj) 获取指定元素在List中的位置,有则返回对应的下标,无则返回-1 * 4、set(index, e) 覆盖指定下标元素 * 5、remove(index) 删除下标元素 */ static void arrayListTest(){ ArrayList<String> list = null; //System.out.println(list.size());//java.lang.NullPointerException //System.out.println(list.isEmpty());//java.lang.NullPointerException if (list == null) { System.out.println("为null时,size()和isEmpty()都会报异常"); } list = new ArrayList<String>(); System.out.println(list.size());//0 System.out.println(list.isEmpty());//true list.add("gongYg"); list.add("gongXY"); list.add("gongXH"); list.add("guMD"); //list.clear(); System.out.println(list.size());//4 System.out.println(list);//[gongYg, gongXY, gongXH, guMD] System.out.println(list.get(0));//gonYG System.out.println(list.indexOf("gongXY"));//1 list.set(0,"gongYY"); System.out.println(list.get(0));//gongYY list.remove("gongYY"); System.out.println(list);//[gongXY, gongXH, guMD] list.remove(0); System.out.println(list); System.out.println(list.contains("gongXH"));//是否包含元素,类似于= String[] sArray = new String[list.size()]; list.toArray(sArray); for (String s: sArray ) { System.out.println(s); } } /** * LinkedList 与 ArrayList方法基本一样 * extends Collection */ static void linkedListTest(){ LinkedList<String> list = null; //System.out.println(list.size());//java.lang.NullPointerException //System.out.println(list.isEmpty());//java.lang.NullPointerException if (list == null) { System.out.println("为null时,size()和isEmpty()都会报异常"); } list = new LinkedList<String>(); System.out.println(list.size());//0 System.out.println(list.isEmpty());//true list.add("gongYg"); list.add("gongXY"); list.add("gongXH"); list.add("guMD"); //list.clear(); System.out.println(list.size());//4 System.out.println(list);//[gongYg, gongXY, gongXH, guMD] System.out.println(list.get(0));//gonYG System.out.println(list.indexOf("gongXY"));//1 list.set(0,"gongYY"); System.out.println(list.get(0));//gongYY list.remove("gongYY"); System.out.println(list);//[gongXY, gongXH, guMD] list.remove(0); System.out.println(list); System.out.println(list.contains("gongXH"));//是否包含元素,类似于= String[] sArray = new String[list.size()]; list.toArray(sArray); for (String s: sArray ) { System.out.println(s); } } }
set类
package com.gongxy.demo.collectionstudy; import java.util.HashSet; import java.util.Set; /** * Collection - Set 类 */ public class SetTest { public static void main(String[] args) { hashSetTest(); } static void hashSetTest(){ Set<Integer> set = new HashSet<Integer>(); set.add(1); set.add(2); set.add(2); System.out.println(set);//[1, 2] System.out.println(set.isEmpty());//false System.out.println(set.size());//2 set.remove(2); System.out.println(set);//1 System.out.println(set.contains(1));//true } }
queue类
package com.gongxy.demo.collectionstudy; import java.util.LinkedList; import java.util.Queue; import java.util.jar.JarOutputStream; /** * Collection - Queue * 队列 * */ public class QueueTest { public static void main(String[] args) { queueTest(); } /** * add(e)/offer(e) //加入队列;两者区别是如果队列满了,一个异常,一个返回false * E element(0/peek() //查看队列的头;两者区别是如果队列为空,一个异常,一个返回false * E poll()/remove() //移除次队列的头;两者区别是如果队列为空,一个异常,一个返回false */ static void queueTest(){ Queue<String> queue = new LinkedList<String>(); queue.offer("A"); queue.offer("A"); queue.offer("B"); queue.offer("C"); System.out.println(queue);//[A, A, B, C] String first = queue.peek(); System.out.println(first);//A System.out.println(queue);//[A, A, B, C] String firstD = queue.poll(); System.out.println(firstD);//A System.out.println(queue);//[A, B, C] } }