ArrayList<Integer> al1 = new ArrayList<Integer>();
// List<Integer> al1 = new ArrayList<>(); // 이렇게 줄여쓸 수 있다.
//추가
al1.add(10); //index 0
al1.add(20); //index 1
al1.add(30); //index 2
al1.add(1, 40); // index 1번에 40이 들어가고 기존 값들의 index 하나씩 증가
for (int i = 0; i < al1.size(); i++) {
System.out.println(al1.get(i));
}

장점 ) 데이터를 넣을 때 간편하게 넣을 수 있다.
단점 ) 인덱스가 변하기 때문에 원하는 값을 가져오기 불편하다.
ArrayList<Integer> al1 = new ArrayList<Integer>();
// List<Integer> al1 = new ArrayList<>(); // 이렇게 줄여쓸 수 있다.
//추가
HashMap<String, Integer> hm = new HashMap<String, Integer>();
//Map<String, Integer> hm = new HashMap<>();
hm.put("1번", 10);
hm.put("2번", 20);
hm.put("3번", 30);
System.out.println(hm.get("2번"));
}

장점 ) 넣을 때 번호를 다 붙여주었기 때문에 데이터를 가져올 때 편하다.
단점 ) 데이터를 넣을 때 일일이 번호를 붙여주어야 하기 때문에 불편하다.