//////
Search

우주완

날짜
2022/10/07
작성자
우주완
카테고리

리스트(List)

배열과 달리 리스트는 크기가 정해져 있지 않아 원하는 만큼의 값을 담을 수 있다.
package lionlike.java10m.week1.day1007.practice; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; public class List { public static void main(String[] args) { StringBuffer sb = new StringBuffer(); sb.append("안녕"); sb.append(" 반가워"); sb.append(" 잘가"); System.out.println(sb); sb.insert(0,"삐용 "); System.out.println(sb.toString()); // 문자열 포메팅 sb.substring(0,sb.length()-3); System.out.println(sb.substring(0,sb.length()-3)); // 문자열 포메팅 String[] day = {"m","t","w","t","f","s","s"}; System.out.println(Arrays.toString(day)); System.out.println(day.length); // List 자료형 중 가장 간단한 형태의 자료형인 ArrayList에 대해서 알아보자. // 박찬호 선수가 총 3번의 투구를 138, 129, 142(km) 의 속도록 던졌다면 다음과 같이 코드를 작성할 수 있다. // 리스트와 배열의 가장 큰 차이는 크기가 정해져 있지 않고 동적으로 변한다는 점이다 ArrayList<Integer> speed = new ArrayList<>(); speed.add(135); speed.add(130); speed.add(128); speed.add(148); speed.add(135); // 중복 가능 System.out.println(speed); speed.add(0, 150); System.out.println(speed); System.out.println(speed.size()); System.out.println(speed.contains(148)); System.out.println(speed.contains(147)); // System.out.println(speed.remove(148)); // List는 객체를 삭제할수 없다? System.out.println(speed.remove(0)); System.out.println(speed); String[] data = {"138", "129", "142"}; // 이미 투구수 데이터 배열이 있다. ArrayList<String> pitches = new ArrayList<>(Arrays.asList(data)); // 배열을 리스트로 바꾸는 방법 System.out.println(pitches); // [138, 129, 142] 출력 String result = ""; for (int i =0; i<pitches.size(); i++) { result += pitches.get(i); result += ","; } String re = result.substring(0,result.length()-1); System.out.println(re); String result1 = ""; System.out.println(pitches); // 데이터 상태 확인 result1 = String.join(",",pitches); System.out.println(result1); pitches.sort(Comparator.naturalOrder()); // 오름차순 System.out.println(pitches); System.out.println(pitches.get(0)+1); pitches.sort(Comparator.reverseOrder()); // 내림차순 System.out.println(pitches); String[] data1 = {"138", "129", "142"}; // 이미 투구수 데이터 배열이 있다. Arrays.sort(data1); System.out.println(Arrays.toString(data1)); // 문자열로 된 숫자들이지만 오름차순 내림차순 구분이 가능. } }
Java
복사

맵 (Map)

key 값 중복 불가
key 값이 중복 되고 value 값이 다를 때 마지막 value 값 사용
package lionlike.java10m.week1.day1007.practice; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; public class Map { public static void main(String[] args) { HashMap<String, Integer> size = new HashMap<>(); size.put("우주완", 100); size.put("김주완", 80); size.put("이주완", 200); size.put("환주완", 170); size.put("게주완", 150); size.put("게주완", 150); // 중복 불가 size.put("게주완", 200); // 중복 불가 마지막꺼 사용 System.out.println(size); System.out.println(size.get("우주완")); System.out.println(size.getOrDefault("우주완",222)); // 있으면 안뜸 System.out.println(size.getOrDefault("이지우",222)); // 없으면 default 값 설정 System.out.println(size.containsKey("우주완")); System.out.println(size.containsKey("이지우")); System.out.println(size.remove("이지우")); // key 값이 없을시 null System.out.println(size); System.out.println(size.remove("우주완")); // 삭재후 value 값 출력 System.out.println(size.size()); // System.out.println(size.keySet()); // key 값만 리턴 List<String> keyList = new ArrayList<>(size.keySet()); //? System.out.println(keyList); } }
Java
복사
Set 자료형은 다음과 같이 List 자료형으로 바꾸어 사용할 수도 있다.
List<String> keyList = new ArrayList<>(map.keySet());
Java
복사

집합 (Set)

public class Set { public static void main(String[] args) { HashSet<String> set = new HashSet<>(Arrays.asList("H","e","l","l","o")); System.out.println(set); } } // 출력 : [e, H, l, o]
Java
복사
리스트나 배열은 순서가 있기(ordered) 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있지만 집합 자료형은 순서가 없기(unordered) 때문에 인덱싱으로 값을 얻을 수 없다. 이는 마치 맵 자료형과 비슷하다. 맵 자료형 역시 순서가 없는 자료형이라 인덱싱을 지원하지 않는다.
중복을 허용하지 않는다.
순서가 없다(Unordered).
package lionlike.java10m.week1.day1007.practice; import java.util.Arrays; import java.util.HashSet; public class Set { public static void main(String[] args) { HashSet<Integer> set1 = new HashSet<>(Arrays.asList(1,2,3,4,5,6)); HashSet<Integer> set2 = new HashSet<>(Arrays.asList(4,5,6,7,8,9)); System.out.println(set1); HashSet<Integer> instersection = new HashSet<>(set1); // set1으로 instersection 객체 생성 System.out.println(instersection); instersection.retainAll(set2); // 교집합 System.out.println(instersection); instersection.addAll(set2); //합집함 System.out.println(instersection); instersection.removeAll(set1); //차집합 System.out.println(instersection); HashSet<String> num = new HashSet<>(); num.add("하나"); num.add("둘"); num.add("셋"); num.add("하나"); System.out.println(num); } }
Java
복사

String열 int 변환

Integer.parseInt(a)