(1)Java集合-Collection
A、集合可以理解为一个动态的对象数组,不同的是集合中的对象内容可以任意扩充
B、集合特点:性能高,容易扩展和修改
C、Collection的常用子类:List、Set、Queue
(2)Java集合-List
A、List接口可以存放任意的数据,而且在List接口中内容是可以重复的
B、List接口常用子类:ArrayList、 Vector
C、常用操作:
判断集合是否为空:boolean isEmpty()
查找指定的对象是否存在:int indexOf(Object o)。
import java.util.ArrayList; import java.util.List; public class ListDemo01 { public static void main(String[] args) { List<String> lists=null; lists=new ArrayList<String>(); //List常用接口子类一arrayList lists.add("A"); lists.add("B"); lists.add("A");//内容可重复 for (int i = 0; i < lists.size(); i++) { System.out.println(lists.get(i)); } lists.remove(0); System.out.println("删除之后-------"); for (int i = 0; i < lists.size(); i++) { System.out.println(lists.get(i));} System.out.println("集合是否为空:"+lists.isEmpty()); System.out.println("B是否存在:"+lists.indexOf("B"));
结果:
A
B
A
删除之后-------
B
A
集合是否为空:false
B是否存在:0 //当前集合的索引,因为刚刚A被删除了,所以此时B位于集合第一个位置,所以为0.若不存在,则-1。
ArrayList、 Vector功能差不多,下图为二者比较:
(3)Java集合-Set
A、Set 接口中不能加入重复元素(List可重复),但是可以排序。
B、Set 接口常用子类:
散列存放:Hashset
有序存放:TreeSet
public static void main(String[] args) { Set<String> s=null; //s=new TreeSet<String>();//(逻辑)有序 s=new HashSet<String>();//无序 s.add("A"); s.add("B"); s.add("C"); System.out.println(s);
(4)Java集合-Iterator
A、集合输出的标准操作:标准做法,使用Iterator 接口。
B、操作原理:Iterator是专门的迭代输出接口,迭代输出就是将元素一个个进行判断,判断其是否有内容,如果有内容则把内容取走。
public static void main(String[] args) { List< String> lists=new ArrayList<>(); lists.add("A"); lists.add("B"); lists.add("C"); System.out.println(lists); Iterator<String> iter=lists.iterator(); while(iter.hasNext()){ String str =iter.next(); if ("A".equals(str)) { iter.remove(); }else System.out.println(str);
结果:[A, B, C]
B
C
(5)Java集合-Map(为接口存放时,key 都是唯一的。)
A、保存形式:key--à value 的方式保存。例:小雪:15362489521
B、常用子类:HashMap:无序存放,key不允许重复
Hashtable:无序存放,key不允许重复
public class MapDemo01 { public static void main(String[] args) { Map<String, String> map=new HashMap<String, String>(); map.put("key1", "jikexueyuan"); map.put("key2", "www"); map.put("key3", "com"); map.put("key4", "eoe"); map.put("key5", "hello"); String str =map.get("key1"); System.out.println(str); //判断键和值是否存在 if (map.containsKey("key")) { System.out.println("key存在"); }else {System.out.println("key不存在"); } if (map.containsValue("jikexueyuan")) { System.out.println("value存在"); }else{System.out.println("value不存在"); } //输出所有值或键 Set<String> s=map.keySet(); Iterator<String> i=s.iterator(); while (i.hasNext()) { System.out.println(i.next()); } Collection<String > c=map.values(); Iterator<String> i1=c.iterator(); while (i1.hasNext()) { System.out.println(i1.next());
结果:
jikexueyuan
key不存在
value存在
key1
key2
key5
key3
key4
jikexueyuan
www
hello
com
eoe