集合类又被成为容器。集合的长度是可变的,存放的是对象的引用。继承体系如下。
他是层次结构中的根接口
Collection接口的常用方法: add(E e):将指定对象添加到该集合中 remove(Object object):将指定对象从该集合中移除 isEmpty():返回boolean值,判断当前集合是否为空 iterator():迭代器,用于集合中的遍历 size():返回int值,获取该集合中元素的个数
通过迭代器遍历集合
Collection <String>list=new ArrayList<String>();//实例化集合类对象 list.add("a");//集合中添加数据 list.add("b"); list.add("c"); Iterator <String>it=list.iterator();//创建迭代器 while(it.hasNext()){ //判断是否有下一个元素 String str=(String)it.next(); //获取元素 System.out.println(str); }注:Iterator的next()方法返回的是Object
List集合中的元素允许重复,元素的顺序就是插入的顺序,类似数组。继承Collection接口,包含他的所有方法,他还定义了下面的两个重要方法。 get(int index):获取指定索引位置的元素 set(int index,Object object):将指定索引位置的元素修改为指定对象
List接口的实现类 ArrayList:实现了可变的数组,允许保存所有元素,包括null,根据索引位置随机快速访问,缺点插入对象和删除对象速度慢。 LinkedList:采用表链结构保存对象,有点插入删除对象速度快,缺点随机访问元素速度慢。
实例化操作:
List<E>list=new ArrayList<>(); List<E>list1=new LinkedList<>(); List <String>list=new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); int i=(int)(Math.random()*(list.size()-1)); System.out.println("随机获取了一个数是:"+list.get(i)); list.remove(2); System.out.println("移除了索引为2的元素"); Iterator <String>it=list.iterator(); while(it.hasNext()){ String str=(String)it.next(); System.out.println(str); }Set集合中的对象不按特定方式排序,不能包含重复对象,同样继承了Collection。 Set常用的实现类: HashSet:由哈希表支持,不能保证排列顺序,允许null元素 TreeSet:在遍历集合时按自然顺序递增排序,也可以根据指定比较器递增排序
TreeSet类增加的方法 first():返回此set中当前第一个(最低)的元素 laset():返回此Set中当前最后一个(最高)的元素 comparator():返回此set中的元素进行排序的比较器,如果此Set使用自然顺序,则返回null。 headSet(E toElement):返回一个新的Set集合,新集合包含toElement。。。 *****过于抽象,无法理解**!***他没有继承Collection接口,他提供的是Key和value的映射。Map中不能包含相同的Key,每个Key也只能映射一个values。用的一种“散列技术”进行存储。
常用方法: put(K key,V value):向集合中添加指定的key与value的映射关系 containskey(Object key):如果此映射关系包含指定的key的映射关系,则返回true containsValue(Object value):如果此映射将一个或多个key映射到指定值,则返回true get(Object key):存在指定key对象,返回对应的值,不存在返回null keySet():返回该集合中的所有key对象形成的Set集合 values():返回该集合中所有值对象形成的Collection集合
Map<String,String>map=new HashMap<String,String>();//创建Map示例 map.put("1","苹果"); //添加数据 map.put("2","鸭梨"); Set<String>set=map.keySet(); Iterator<String>it=set.iterator(); System.out.println("打印Key集合中的元素:"); while(it.hasNext()){ System.out.println(it.next()); } Collection<String>coll=map.values(); it=coll.iterator(); System.out.println("values集合中的元素:"); while(it.hasNext()){ System.out.println(it.next()); }Map接口常用实现类有HashMap和TreeMap,一般用HashMap的比较多,HashMap基于哈希表的接口实现,添加删除映射关系速度快,查询速度也快。 而TreeMap中的映射关系存在顺序的。
