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 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();
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 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();
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 set = new HashSet();
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 queue = new LinkedList();
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]
}
}