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());}
- Java数据类型和集合的小结
- java的基本数据类型小结
- java小结_015_Treeset集合的compareTo和comparator
- JAVA 数据类型和多种运算符小结
- Java入门(6)——集合、基本数据类型和引用数据类型的相互转换
- Java入门(6)——集合、基本数据类型和引用数据类型的相互转换
- 指针的数据类型和指针运算小结
- java与c数据类型小结及简单java和c的hello程序
- Java基础数据类型小结
- Java数据类型小结
- python的数据类型和典型集合
- java基础加强--集合类的小结
- 黑马程序员--Java集合的小结
- Java中常用的集合小结
- JAVA集合小结
- Java 集合框架小结
- java 集合 框架小结
- java集合小结
- SVM
- csu 1809 Parenthesis 2016湖南省赛 G
- Android MapBox的Directions API无法绘制路线问题
- printf的输出规则
- 浅析迭代器失效
- Java数据类型和集合的小结
- NYOJ-1276-机器设备
- 腾讯云主机上部署tomcat,以及正确的访问网页访问路径
- jsonp原理
- AutoView自动为旧设计稿更新新设计稿尺寸
- 反射获取Class对象的四种方法
- material design使用总结
- 4.2.4重命名表 RENAME TABLE 4.2.5删除表 DROP TABLE
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'