import java.util.*;
import java.io.*;
ArrayList
ArrayList<Integer> w=new ArrayList<Integer>();
ArrayList<Integer> copy_w=new ArrayList<Integer>();
copy_w.addAll(w);
ArrayList<Integer> ArrList=new ArrayList<Integer>();
ArrList.sort(null);
ArrList.size();
List
- set을 List로 변경하기 ⇒ List의 생성자에 set을 넣어준다.
Set<String> set = new HashSet<String>();
List<String> aList = new ArrayList<>(set);
- Sort ⇒ List를 정렬할 때 Collections의 sort() 메소드를 이용한다.
- Collections.sort()
- add()
- remove()
- size()
List<Stirng> alist = new ArrayList<>();
Collections.sort(aList);
alist.add(1);
alist.remove(1);
alist.size();
- List 초기화 ⇒ Arrays.asList({value, ...})
List<String> label = new ArrayList<>(Arrays.asList("zero","one","two","three","four","five","six","seven","eight","nine"));
Set
- add(value)
- remove(value)
- size()
Set<String> set = new HashSet<String>();
set.remove("str");
set.size();
Map
- put(key, value)
- get(key)
- map.containsKey("str") ⇒ "str"이라는 키가 존재하면 true 아니면 false
- size()
Map<String, Integer> m = new HashMap<>();
map.put("str", 1);
map.get("str");
map.containsKey("str");
- Map의 value로 Collection값 넣기(List 같은)
Map<String, List<Integer>> m = new HashMap<>();
if(m.containKey(str) == false) {
List<Integer> list = new ArrayList<>();
list.add(4);
m.put(str, list);
}
else {
m.get(str).add(4);
}
Iterator
- map, set의 값을 조회할 때, set.iterator()를 사용해 반복자를 생성한다.
- hasNext(), next()
Set<String> set = new HashSet<String>();
Iterator<String> it = set.iterator();
while(it.hasNext()){
String a = it.next();
System.out.println(a);
}
/*------------map------------------*/
Map<String,Integer> map=new HashMap<>();
Iterator<String> it= map.keySet().iterator();
while(it.hasNext()){
String key=it.next();
int value=map.get(key);
}
String
- 소문자, 대문자 ⇒ toLowerCase(), toUpperCase()
- 길이 ⇒ str.length()
String str ="ABC";
str = str.toLowerCase();
String str ="abc";
str = str.toUpperCase();
String str ="ABC";
String[] Arr = str.split("");
//['A', 'B', 'C']
- 문자열 자르기(SubString) ⇒ substirng()
String str ="1234567";
str.substring(3) // "4567", 3인덱스부터 끝까지
str.substring(2, 5) // "345", 2~(5-1)
- 문자열 뒤집기(Reverse) ⇒ new StringBuilder(str).reverse().toString();
String str ="ABC";
String str = new StringBuilder(str).reverse().toString();
// "CBA"
- replace(),
- String a = Integer.toString(num);
- int a = Integer.parseInt(str);
String str = "가는 나입니다.";
String text = str.replace('가', '는');
System.out.println(text);
입출력
- BufferedReader
- Enter를 경계로 입력값을 인식한다.
- readLine() 메소드는 개행문자를 포함해 String형식으로 입력을 받아온다
import java.io.InputStreamReader;
import java.io.BufferedReader;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Queue
import java.util.Queue;
Queue<Integer> queue = new LinkedList<>();
Qeueu<String> queue = new LinkedList<>();
queue.add(1);
queue.add("str");
int pop_data = queue.poll();
- pair
- java에서는 pair연산자를 구현해서 사용한다.
static class Node {
int y;
int x;
int dict;
Node(int y, int x, int dict) {
this.y = y;
this.x = x;
this.dict = dict;
}
}
Queue<Node> queue = new LinkedList<>();
queue.add(new Node(1,2,3));
Node node = queue.poll();
Stack
- push()
- pop()
- clear()
- peek() ⇒ 가상 상단의 값
- empty()
- size()
- contains(1) ⇒ 스택에 1이 있다면 true
import java.util.Stack;
Stack<Integer> stack = new Stack<>();
Stack<String> stack = new Stack<>();
stack.push(1);
stack.push(2);
int a = stack.peek();
stack.pop(();
import java.io.*
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String str = sc.next();
public class main {
public static void main(String[] args) {
}
}
static class Node {
int x, y, z;
Node(int x, int y, int z) {
this.x = x;
this.y = y;
this.z = z;
}
}
double avg = 3.14521984;
Math.round(avg); // 첫째자리 반올림
Math.round((avg*100)/100.0); // 3.14
Math.round((avg*1000)/1000.0); // 3.145
Math.abs(-1); // 1
int count = Collections.frequency(list, 3); // list에서 3의 개수 찾기
int temp = Integer.parseInt(str);
char[] chars = str.toCharArray(); // 문자열을 캐릭
Character.isDigit(chars[i]); // char가 숫자인지 판별
list.set(1, 3); // 1인덱스의 원소를 3이라는 값으로 바꾼다.
Collections.sort(list, reverseOrder()); // 내림차순 정렬
// 2차원 리스트 생성과 초기화
List<List<Integer>> alist = new ArrayList<>();
for(int i = 0; i < n; i++) {
List<Integer> temp = new ArrayList<>();
for(int j = 0; j < n; j++) {
temp.add(sc.nextInt());
}
alist.add(temp);
}
alist.add(0, 3); // 0인덱스에 3을 추가한다. 뒤의 데이터는 한칸씩 밀린다.