List
ArrayList
- 支持的数据类型:引用类型
- 数据排列:有序
- 数据重复性:可重复
public static void main(String[] args) {
// ArrayList<E> list = new ArrayList<>(); E为包装类型,指定该集合的类型
// boolean : Boolean
// byte : Byte
// short : Short
// int : Integer
// long : Long
// float : Float
// double : Double
//char : Character
// 创建List对象
ArrayList<String> list = new ArrayList<String>();
// 添加数据
list.add("第一个字符串");
list.add("第二个字符串");
list.add("第三个字符串");
System.out.println(list);
System.out.println(list.size());
// 移除数据
list.remove(0); // 根据索引来删除数据
System.out.println(list);
boolean isSucceed = list.remove("第四个字符串"); // 根据值来删除数据,返回布尔类型
System.out.println(isSucceed);
// 获取集合大小
System.out.println(list.size());
// 获取数据
System.out.println(list.get(0));
// 判空函数
System.out.println(list.isEmpty());
// 判断包含某数据
System.out.println(list.contains("第二个字符串"));
// 修改某位置的数据
list.set(0,"第一个字符串");
System.out.println(list);
// 遍历集合
for (int i=0 ; i< list.size();i++){
System.out.println("遍历结果:"+list.get(i));
}
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){
System.out.println("遍历迭代器:"+iterator.next());
}
// 增强循环
list.add("哈哈哈哈");
list.add("嘿嘿嘿嘿");
for(String name : list){
System.out.println("增强遍历结果:"+name);
}
}
Map
HashMap
- 支持的数据类型:引用类型
- 以键值对形式来保存数据
- 键值不可以重复,重复时后者键值对覆盖前者
public static void main(String[] args){
HashMap<String,String> hashMap = new HashMap<String,String>();
// 给hashmap添加数据
hashMap.put("name","张三");
hashMap.put("age","18");
hashMap.put("sex","男");
// 获取数据
System.out.println("name :"+hashMap.get("name"));
System.out.println("age :"+hashMap.get("age"));
System.out.println("sex :"+hashMap.get("sex"));
// 获取 hashmap 大小
System.out.println(hashMap.size());
// 移除某个数据
String bl = hashMap.remove("name"); // 移除此key和value,并返回此key对应的value
System.out.println(bl);
// 判断 hashmap 中是否包含某个key
System.out.println(hashMap.containsKey("name"));
System.out.println(hashMap.containsKey("age"));
// 判断 hashmap 中是否包含某个value
System.out.println(hashMap.containsValue("男"));
// 一次性拿到所有的 key,并遍历
Set<String> keys = hashMap.keySet(); // 返回的是一个集合
for (String key : keys){
System.out.println("遍历key="+key+",遍历value="+hashMap.get(key));
}
// 一次性拿到所有的 values,并遍历
Collection<String> values = hashMap.values();
for (String value : values){
System.out.println("value="+value);
}
// Entry 就是代表一个 key,value 键值对
// 遍历 hashMap
Set<Map.Entry<String,String>> entries = hashMap.entrySet();
for (Map.Entry<String,String> entry : entries){
System.out.println("key="+entry.getKey()+",value="+entry.getValue());
}
// 删除 hashMap 所有数据
hashMap.clear();
}
Set
HashSet
- 支持的数据类型:引用类型
- 数据排列:无序
- 数据重复性:不 可重复
- 为什么HashSet 有去重的功能:因为实现了这样一个算法,在添加数据时会判断两个数据是否一样,通过比较两个数据的hashcode值。
public static void main(String[] args) {
// 创建一个 HashSet
HashSet<String> hashSet = new HashSet<String>();
System.out.println(hashSet.isEmpty());
hashSet.add("张三");
hashSet.add("李四");
hashSet.add("王五");
System.out.println(hashSet);
System.out.println(hashSet.size());
System.out.println(hashSet.isEmpty());
System.out.println(hashSet.contains("李四"));
// HashSet 是无序的,不能通过索引删除数据
boolean isSucceed = hashSet.remove("陈二");
System.out.println(isSucceed);
// 遍历 HashSet 集合
Iterator<String> iterator = hashSet.iterator(); //获取迭代器
while (iterator.hasNext()){
System.out.println("遍历HashSet:"+iterator.next());
}
for (String name : hashSet){
System.out.println("遍历hashset:"+name);
}
// 转化为 Array数组,并遍历
Object[] ahashSet = hashSet.toArray();
for (Object object : ahashSet){
System.out.println(object);
}
// 清空 HashSet 集合
hashSet.clear();
System.out.println("清空后:"+hashSet.size());
}