package com.javadatabase.collections;
import java.util.ArrayList;
public class ArrayListDemo {
public static void main(String[] args) {
// 数组:定长,数组内容不能直接删除
// 容器:存储数据的对象
// ArrayList 是超级数组:ctrl + shift + o
ArrayList list = new ArrayList();
System.out.println("=================== ArrayList对象常用方法===============");
System.out.println("=========== 1. add: 追加元素 ==========");
list.add("a"); //[a]
list.add(1); // [a,1]
list.add(true); // [a,1,true]
// System.out.println(list.toString());
System.out.println(list); // 不会打印地址值,重写toString,println()会自动调用toString
// 黄色波浪线,集合会规定数据类型
// 泛型:规定数据类型<引用数据类型>,这样的话,每一个元素都必须是字符串类型
ArrayList <String> list1 = new ArrayList<>();
list1.add("Hello");
list1.add("World");
System.out.println(list1);
}
}
package com.javadatabase.collections;
import java.util.ArrayList;
public class ArrayListAPI {
//ArrayList 容器常用方法
public static void main(String[] args) {
ArrayList <String> list = new ArrayList<>();
// 1. 判断列表是否为空: isEmpty
System.out.println(list.isEmpty());
// 2. 添加(追加)元素:add
list.add("Hello");
// 在指定位置插入元素
list.add(1,"World!");
list.add(1," ");
list.add(1,"Hello");
// 3. 移除元素: remove(索引)-- 移除指定位置元素
list.remove(1); // 移除指定位置内容
// list.remove("Hello"); // 移除指定对象的内容(有几个删几个)
// System.out.println(list);
// 4. size (长度)& get(获取元素)
// for (int i = 0; i < list.size(); i++) {
// System.out.println(list.get(i));
// }
// 遍历集合 2
// for (String element:list) {
// System.out.println(element);
// }
// 5. contains: 判断集合中是否有这个元素
// System.out.println(list.contains("Hello"));
// 6. set : 修改值
list.set(1,"被修改");
System.out.println(list);
}
}
package com.javadatabase.collections;
import java.util.HashSet;
import java.util.Set;
public class HashSetDemoApi {
public static void main(String[] args) {
// List: 有序,可通过索引访问元素
// Set: 无序(存储的顺序不是按方法的调用,有自己的排序算法),没索引,不能重复
// HashSet<String> set = new HashSet<>();
// set.add("Hello");
// set.add(" World");
// set.add("!");
// System.out.println(set);
// 多态
Set<String> set1 = new HashSet<>();
set1.add("Hello");
set1.add(" World");
set1.add("!");
// HashSet常用方法
// 1. 添加元素,add
// 2. 获取长度
int size = set1.size();
// 3. 删除元素-- 通过元素内容(或者说是对象去删除)---不存在的话,也不会报错
set1.remove("!");
System.out.println(set1);
set1.remove("haha");
// 4. 判断集合是否为空: isEmpty
System.out.println(set1.isEmpty());
// 5. 判断集合是否包含某元素: contains
System.out.println(set1.contains("Hello"));
// 6 将集合转化为对应数据类型的数组
Object[] array = set1.toArray();
System.out.println(array.toString());
// 7. 清除集合内容 clear
set1.clear();
}
}
package com.javadatabase.collections;
import java.util.HashMap;
public class HashMapDemoApi {
//HashMap
public static void main(String[] args) {
// HashMap<键的泛型,值得泛型>
HashMap<Integer,String> map = new HashMap<>();
// 1. put : 添加元素
map.put(1,"Lujier001");
map.put(2,"Lujier002");
map.put(3,"Lujier003");
map.put(3,"Lujier004");
System.out.println(map);
// 2. 获取元素:get(key),不存在也不会报错,默认返回:null
System.out.println(map.get(4));
// 3. 长度:size()
System.out.println(map.size());
// 4. 判断是否空:isEmpty()
System.out.println(map.isEmpty());
// 5. 获取所有得键:keySet()
System.out.println(map.keySet());
// 6. 获取所有得值:values()
System.out.println(map.values());
// 7. 移除元素:remove(key)
map.remove(2);
// 8. 是否包含某个key:containsKey(key),boolean
System.out.println(map.containsKey(1));
// 9. 是否包含某个value:containsValue(value) boolean
System.out.println(map.containsValue("Lujier009"));
}
}
public class HashMapDemoApi {
public static void main(String[] args) {
// HashMap遍历
HashMap<Integer, String> map = new HashMap<>();
map.put(1, "Lujier001");
map.put(2, "Lujier002");
map.put(3, "Lujier003");
map.put(3, "Lujier004");
// 1. for 循环遍历: 获取所有键,通过键get到value值
for(Integer num:map.keySet()) {
System.out.printf("%d:%s\n", num, map.get(num));
}
// 等效于上边两行内容
Set<Integer> keys = map.keySet();
for(Integer num:keys) {
System.out.printf("%d:%s\n", num, map.get(num));
}
System.out.println("=============================================");
// 2. 直接取除所有键值对,Map.Entry内部存的就是一对对得键值对
Set<Map.Entry<Integer,String>> entry = map.entrySet();
for (Map.Entry<Integer,String> entry1:entry){
System.out.printf("%d = %s\n",entry1.getKey(),entry1.getValue());
}
// 3. 通过迭代器遍历
Set<Integer> keys1 = map.keySet();
Iterator<Integer> it = keys1.iterator();
while ( it.hasNext()){
Integer key = it.next();
String value = map.get(key);
System.out.printf("%d = %s\n",key,value);
}
// 或者
Set<Map.Entry<Integer,String>> entry2 = map.entrySet();
Iterator<Map.Entry<Integer,String>> it1 = entry2.iterator();
while ( it1.hasNext()){
Map.Entry<Integer,String> entry3 = it1.next();
System.out.printf("%d = %s\n",entry3.getKey(),entry3.getValue());
}
}
}