Java数据类型和集合的小结

来源:互联网 发布:旅游英语口语速成软件 编辑:程序博客网 时间:2024/06/16 17:51

Java数据类型上我们知道有基本数据类型和数组、对象、包装类、静态变量等几种;

而基本数据类型为了方便使用是存放在栈内存,对于数组类型呢,是栈内存中创建数组引用地址,实际存储空间是堆内存分配的;

下来说说数组和集合:

因为大家都是存放数据的载体,简单在选择性使用上太随意;

区别上:

数组是固定大小且只能存放同一种类型的数据(基本类型、引用类型等);而集合较为自由,可以存放不固定数目、不同类型的一批数据;

这样一来,如果针对存放对象不确定,空间又可以因不足自动增加的,就不要选择数组Array,而需要使用容器类库;

对于集合:有List、Set、Map 三个主要接口类型;

说明:

1、List(ArrayList,Vector,LinkedList)是有序且允许数据元素重复的,这里ArrayList\Voctor 实现类是底层由有序数组实现的,而LinkedList实现类底层是由链表实现的;

2、Map (HashMap,TreeMap,Hashtable)称之为键值对集合. 注意的是里面  key value 都是一个集合,key的值不能重复,value 则没关系;HashMap 可以存null值,而Hashtable 不允许;

3、Set (HastSet,TreeSet) 是不常被提及,但它是简单的一种集合,不允许数据元素重复,每次通过游标的方式去取值,即值不重复;


深层的性能优劣这里我就不展开讲,先说说遍历取值的问题:

1、简单的for 循环 计数器方式

for( int i =0; i< list.size(); i++ ) {

 list.get(i); 

}

2、迭代器遍历 

 Iterator iterator = list.iterator():

while( iterator.hasNext () ){

  iterator.next();

}

3、 foreach 循环遍历 

 for ( ElementType element : list){

另外补充 Map 类型遍历取值例子:

1、 通过keySet 和values 来实现的

Map<Object,Object> mapTest=new HashMap<Object,Object>();for (Object key : mapTest.keySet()){    System.out.println(key);}for (Object value : mapTest.values()){    System.out.println(value);}
2、通过entrySet 来获取的

Map<Object, Object> mapTest2 = new HashMap<Object, Object>();for (Map.Entry<Object, Object> entry : mapTest2.entrySet()) {    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());}
3、使用载体 Iterator 遍历

Map<Object, Object> mapTest3 = new HashMap<Object, Object>();Iterator<Map.Entry<Object, Object>> entries = map.entrySet().iterator();while (entries.hasNext()) {    Map.Entry<Object, Object> entry = entries.next();    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());}





1 0
原创粉丝点击