基本数据类型
数值型
整数 内存占用 取值范围
byte 1 负的2的7次方 ~ 2的7次方-1(-128~127)
short 2 负的2的15次方 ~ 2的15次方-1(-32768~32767)
int 4 负的2的31次方 ~ 2的31次方-1
long 8 负的2的63次方 ~ 2的63次方-1
浮点数
float 4 1.401298e-45 ~ 3.402823e+38
double 8 4.9000000e-324 ~ 1.797693e+308
字符
char 2 0-65535
非数值型
布尔: 内存占用 取值范围
boolean 1 true,false
引用数据类型.
类: class
接口: interface
数组: []
数组Array
基础了解
定义:用于存储多个元素且是同一种数据类型的容器叫数组
特点:
* 数组是有索引的
* 数组一旦创建,长度不能改变
* 数组可以存储基本数据类型也可存储引用数据类型
数组创建
动态初始化:数据类型[] 数组名 = new 数据类型[长度];
静态初始化:
标准的格式: 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
简化的格式: 数据类型[] 数组名 = {元素1,元素2,...};
集合Collection
单例集合
collection是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素.
JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现.
List集合
特点:有索引,可以存储重复元素 元素存取有序
Set集合
元素存取无序、没有索引、只能通过迭代器或增强for循环遍历 不能存储重复元素
HashSet集合
* 底层数据结构是哈希表
* 没有索引,只能通过迭代器和增强for遍历
* 不能存储重复元素,存取可能无序
LinkedHashSet集合
* 哈希表和链表实现的Set接口,具有可预测的迭代次序
* 由链表保证元素有序,也就是说元素的存储和取出顺序是一致的
* 由哈希表保证元素唯一,也就是说没有重复的元素
TreeSet集合
* 元素有序,可以按照一定的规则进行排序,具体排序方式取决于构造方法TreeSet():根据其元素的自然排序进行排序 TreeSet(Comparator comparator) :根据指定的比较器进行排序
* 没有带索引的方法,所以不能使用普通for循环遍历
* 由于是Set集合,所以不包含重复元素的集合
遍历方式
集合专用遍历方式,通过集合的iterator()方法得到,格式如下:
Iterator<String> it = 集合.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
Collections是针对集合操作的工具类
public static <T extends Comparable<? super T>> void sort(List<T> list):将指定列表按升序排序
public static void reverse(List<?> list):反转指定列表中元素的顺序
public static void shuffle(List<?> list):使用默认的随机源随机排列指定的列表
集合Map
双列集合 也称为夫妻对集合,由 K 和 V 组成的元素,Key 是不允许重复的,K 和 V 允许存储NULL的 但是 K 仅允许存储一次NULL
Map集合常用获取功能
* V get(Object key) : 根据键获取值
* Set<K> keySet() : 获取所有键的集合
* Collection<V> values() : 获取所有值的集合
* Set<Map.Entry<K,V>> entrySet() : 获取所有键值对对象的集合
Map集合的遍历方式
1.先获取键的集合再遍历
Set<String> set = map.keySet();
for (String key : set) {
System.out.println(key + " ," + map.get(key));
}
2.直接获取所有键值对集合
Set<Map.Entry<String, String>> entrySet = map.entrySet();
for (Map.Entry<String, String> entry : entrySet) {
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key +"=" + value);
}
如有疑问或不同见解,欢迎留言共同交流,博主看到后会在第一时间回复哦…