`
ye_haiqiang
  • 浏览: 85387 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

数组和集合的使用

    博客分类:
  • J2SE
阅读更多

一、java的数组

java的数组本质上是一个类,该类还保存了数据类型的信息。该类通过成员变量的形式来保存数据,并且通过[]符号,使用下标来访问这些数据。在处理基本类型数据时,数组保存的是变量的值,如果没有提供初始值,数组会把这些变量的值初始化,而处理引用类型时,数据保存的是数据的引用,如果没有提供初始值,数组会把这些变量的值初始化为null。

 

注意:new Object[5] 并没有创建了5个对象。

 

二、集合框架

集合是用来也只能存储其他对象的对象,代表了一种底层结构,用于扩展数组的功能。集合框架由一系列的接口和实现类组成,基本包括列表(List)、集合(Set)、映射(Map)等,它们大多具有可迭代性和可比较性。

如图:

 

列表(List):有序存放,允许重复,可以存放不同类型的对象。

集合(Set):无序存放,不允许重复,可存放不同类型的对象,SortedSet,排好序列的Set

映射(Map):俗称键值对,如手机中的电话本,SortedMap,排好序列的Map

 

二、迭代器

迭代器,提供一种访问一个集合对象中各个元素的途径,同时又不需要暴露该对象的内部细节。java通过提供Iterable 和Iterator两个接口来实现集合类的可迭代性。迭代器主要的用法就是,首先用hasNext()作为循环条件,再用next()方法得到每一元素,最后在进行相关操作。

import java.util.*;
public class IteratorTest  
{
	public static void main(String[] args) 
	{
		List<String> list=new ArrayList<String>();
		list.add("ye_");
		list.add("hai");
		list.add("qiang");
		Iterator<String> it=list.iterator();
		while(it.hasNext())
		{
			System.out.print(it.next());
		}
	}
}

 

结果为:ye_haiqiang

 

三、Vector和ArrayList 的区别

Vector是线性安全的,因为他操作元素的方法都是同步方法,而ArrayList不是。开发过程中应该根据需求进行选择,如果需要保存线程安全的地方则需要使用Vector,而不必要的时候无需使用Vector,因为ArrayList的效率比较高。

 

四、HashMap和HashTable的区别

1)HashTable的方法是同步的,HashMap不是

2)HashTable不允许null值(key和value都不可以),HashMap允许null。

3)HashTable有一个contains()方法,功能和containsValue()功能一样。

4)HashTable使用Enumeration,HashMap使用Iterator。

5)HashTable中hash数组的初始化大小及其增长方式不同

6)哈希值的使用不同,HashTable直接使用对象的hashCode,而HashMap会重新计算hash值

 

 

每天一点点希望对大家有利~

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics