package com.company;
import sun.java2d.loops.FontInfo;
import java.awt.*;
import java.awt.List;
import java.util.*;
public class Main {
public static void main(String[] args) {
// write your code here
// 集合
//ArrayList<集合中元素类型>集合名 = new ArrayList<集合中元素类型>();
ArrayList<String> list = new ArrayList<String>();
//添加元素
// list.add("社会我刁哥");
// list.add("社会我刁哥");
// list.add("发哥");
// list.add("社会我刁哥");
// list.add("社会我大刁哥");
//
// // System.out.println(list);如果想要访问集合中的元素还是要用for循环来进行使用
//
// //插入元素
// //add方法 - 当参数1添加下标时,完成的是插入功能,否则将元素添加到集合的最尾端
// list.add(1, "小朋友");
// System.out.println(list);
//修改元素
//参数1 - 下标
//参数2 - 要修改的值
// list.set(1, "阿肥");
// System.out.println(list);
// //获取元素
// //
// String str = list.get(2);
// System.out.println(str);
//
// //删除元素
// list.remove(1);
// System.out.println(list);
//
// //集合的元素个数
// int size = list.size();
// System.out.println(size);
/************************以上是使用频率较高的方法*********************/
/************************以下是使用频率不高的方法*********************/
//根据内容得到位置(下标) - 如果有相同的元素输出第一个元素的下标
// int index = list.indexOf("社会我刁哥");
// System.out.println(index);
// //如果有相同的元素输出最后一个元素的下标
// int indxL = list.lastIndexOf("社会我刁哥");
// System.out.println(indxL);
// //子集
// //subList(下标开始的位置, 下标结束的位置)
// //将符合条件的区间(子集)返回到subL中
// //注意: 取得的子集包含"开始的位置", 但不包含"结束的位置"
List<String> subL = list.subList(1,3);
System.out.println(subL);
//
//
// //移除元素 - 通过内容
// //当删除成功,返回true
// //当删除失败,返回false(如不存在)
// boolean ret = list.remove("社会我刁哥");
// System.out.println(list);
// System.out.println(ret);
//
// //删除所有 "社会我刁哥"
// while (list.remove("社会我刁哥")){
//
// }
// System.out.println(list);
//判断是否包含某个元素
// boolean rete = list.contains("社会我刁哥");
// System.out.println(rete);
// //判断集合是否为空
// boolean ret = list.isEmpty();
// System.out.println(ret);
/*********************************练习********************************/
/*********************************练习********************************/
//练习:定义一个集合,用户从键盘输入一个数字n
//将集合赋值1~n
//并打印1~n中所有能被7整除的数
//方式一 集合注意事项:
// 1, 使用集合前必须要创建对象!!!
// 2, 集合中元素类型需要是复杂元素类型(类)
//若要使用简单的数据类型(in, float等等),需要使用对应的包装类
// 一般情况下一个类型的包装类就是这个类型的首字母大写
// ArrayList<Integer> list1 = new ArrayList<Integer>();
// Scanner sc = new Scanner(System.in);
// int n = sc.nextInt();
// for (int i = 1; i <= n; i++) {
// list1.add(i);
// if (i % 7 == 0) {
// System.out.println(i);
// }
// }
// System.out.println(list1);
//
// //方式二
// ArrayList<String> list = new ArrayList<String>();
// Scanner s = new Scanner(System.in);
// int n1 = sc.nextInt();
// for (int i = 1; i <= n; i++) {
// list.add(i + "");//这样就可以字符串转成int类型
// if (i % 7 == 0) {
// System.out.println(i);
// }
// }
// System.out.println(list);
//
//map
//map是以字符串为下标的"无序数组"
//key - value key是下标 value是值
HashMap<String, String> map = new HashMap<String, String>();
//添加元素(添加键值对)
map.put("name", "发哥");
map.put("age", "24");
map.put("levle", "10");
System.out.println(map);
//修改
//put方法 - 若key值不存在就添加
// 若key值存在就修改
// map.put("levle", "12");
// System.out.println(map);
//获取值 - 注意: 根据key而不是0,1等下标
// String str = map.get("name");
// System.out.println(str);
//删除
// map.remove("name");
// System.out.println(str);
//判断是否包含
// boolean ret = map.containsKey("name");
// boolean ret1 = map.containsValue("发哥");
// System.out.println(ret);
// System.out.println(ret1);
//练习,删除map里所有的value为10的元素
for (String key : map.keySet()) {
String str = map.get(key);
if (str.equals("10")) {
map.remove(key);
}
// System.out.println(key + " " + str);
System.out.println(map);
}
}
}