标签:
集合可以理解为一个动态的对象数组,两层含义:
1)、动态:集合中的对象可以任意扩充和删减;
2)、集合中可以存放任意对象。
集合的性能比数组高,而且更容易进行数据的扩展和修改。Collection的常用子接口:List、Set、Queue。
List集合可以存放任意对象,而且集合中对象可以重复。
List的常用实现类:ArrayList、Vector。
ArrayList与Vector的比较:
性能方面:ArrayList采用异步处理方式,性能高;Vector采用同步处理方式,性能低些;线性安全方面:ArrayList属于非线程安全;Vector属于线程安全。
【ArrayList实例】
<span style="font-size:14px;">import java.util.ArrayList; import java.util.List; public class ListDemo1 { public static void main(String[] args) { List<String> lists = null; lists = new ArrayList<String>(); lists.add("Hello"); lists.add("World"); lists.add("Hello"); //允许List中对象重复 for(int i=0; i< lists.size(); i++){ System.out.println(lists.get(i)); } System.out.println("删除操作后...."); lists.remove(2); for (int i = 0; i < lists.size(); i++) { System.out.println(lists.get(i)); } if (lists.isEmpty()) { System.out.println("集合为空..."); } else { System.out.println("集合不为空..."); } if (lists.contains("World")) { System.out.println("集合中包含World"); System.out.println("World所在的位置为:" + lists.indexOf("World")); } else { System.out.println("集合中不包含World"); } List<String> lists2 = new ArrayList<String>(); lists2.add("World"); lists2.add("Hello"); if (lists.equals(lists2)) { //List的比较与元素存入的顺序有关 System.out.println("lists 与 lists2 相等"); } else { System.out.println("lists 与 lists2 不相等"); } } }</span>
【Vector实例】
<span style="font-size:14px;">import java.util.List; import java.util.Vector; public class VectorDemo1 { public static void main(String[] args) { List<String> lists = null; lists = new Vector<String>(); lists.add("Hello"); lists.add("World"); for (int i = 0; i < lists.size(); i++) { System.out.println(lists.get(i)); } } }</span>
3、Set接口
Set集合中不可以放入重复的元素。
Set集合会自动排序;Set常用的实现类:HashSet,TreeSet。
【HashSet实例】
import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class SetDemo1 { public static void main(String[] args) { Set<String> sets = null; sets = new HashSet<String>(); sets.add("D"); sets.add("A"); sets.add("C"); sets.add("B"); sets.add("E"); Iterator<String> its = sets.iterator(); while (its.hasNext()) { /*迭代输出*/ System.out.println(its.next()); } Set<String> sets2 = null; sets2 = new HashSet<String>(); sets2.add("E"); sets2.add("D"); sets2.add("A"); sets2.add("C"); sets2.add("B"); if (sets.equals(sets2)) { // Set的比较与存入元素顺序无关 System.out.println("sets 与 sets2 相等!"); }else { System.out.println("sets 与 sets2 不相等!"); } } }
Iterator是集合专门的迭代输出接口,迭代输出就是将元素一个一个进行判断,判断其是否有内容,如果有内容则把内容取出。
具体实例,见上面的例子。
Map以key/value的保存形式。
Map常用的实现类:HashMap,Hashtable。
不允许key重复。
【HashMap实例】
import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class MapDemo1 { public static void main(String[] args) { Map<String, String> map = new HashMap<String,String>(); map.put("key1", "hello"); map.put("key2", "world"); map.put("key3", "hi"); String s = map.get("key2"); //通过key,获取value; System.out.println(s); Set<String> sets = map.keySet(); //获取所有的key; Iterator<String> itesKey = sets.iterator(); while(itesKey.hasNext()){ System.out.println(itesKey.next()); } Collection<String> cols = map.values(); //获取所有的value; Iterator<String> itesVal = cols.iterator(); while(itesVal.hasNext()){ System.out.println(itesVal.next()); } if (map.containsKey("key1")) { System.out.println("key存在"); } if (map.containsValue("world")) { System.out.println("value存在"); } map.remove("key1"); //移除指定key } }
java集合 - Collection - List - Set - Map - Iterator 学习笔记
标签:
原文地址:http://blog.csdn.net/veechange/article/details/51345061