2023. 12. 12. 23:34ㆍDaily Codig Reminder
3. Comparator -> ArrayList 정렬
System.out.println("======= itrator 이용 순회");
Iterator<String> ite = list.iterator();
while(ite.hasNext()) {
System.out.println(ite.next());
}
System.out.println(list.size());
System.out.println(list);
for (int i = 0; i < list.size(); i++) {
Object o= list.get(i);
String s = (String)o;
System.out.println(s);
}
3
[홍길동, 이순신, 홍길동]
홍길동
이순신
홍길동
System.out.println("길이(크기)"+list.size());
System.out.println("값 포함여부"+ list.contains("세종"));
System.out.println("특정값 위치"+ list.indexOf("세종"));
System.out.println("값이 없냐"+list.isEmpty());
System.out.println(list);
List<String> sub = list.subList(0, 3);
for (String s : list) {
System.out.println(s);
}System.out.println("sub>>>"+sub);
Object [] obj = list.toArray();
for (Object o : obj) {
System.out.println(o);
}
//중간삽입 insert
list.add(0,"정조");
System.out.println(list);
//수정(update)
list.set(0, "영조");
System.out.println(list);
//삭제(delete)
list.remove(0);
list.remove("세종");
//데이터 출력
System.out.println(list);
}
길이(크기)5
값 포함여부true
특정값 위치4
값이 없냐false
[홍길동, 이순신, 유관순, 강감찬, 세종]
홍길동
이순신
유관순
강감찬
세종
sub>>>[홍길동, 이순신, 유관순]
홍길동
이순신
유관순
강감찬
세종
[정조, 홍길동, 이순신, 유관순, 강감찬, 세종]
[영조, 홍길동, 이순신, 유관순, 강감찬, 세종]
[홍길동, 이순신, 유관순, 강감찬]
ArrayList <String> list = new ArrayList<>();//다형성
list.add("홍길동");
list.add("이순신");
list.add("세종");//append
// list.add(100);
List<String> list2 = Arrays.asList("홍길동","이순신","세종","세종");
System.out.println(list);
System.out.println(list2);
}
public static void main(String[] args) {
ArrayList <Person> list = new ArrayList<>();//다형성
list.add(new Person("홍길동1",1, null));
list.add(new Person("홍길동2",2, null));
list.add(new Person("홍길동3",3, null));
//0번방의 이름 출력
System.out.println(list.get(0).getName());
System.out.println("============");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getName());
}
List<String> list2 = Arrays.asList("홍길동","이순신","세종","세종");
System.out.println("======= itrator 이용 순회");
Iterator<Person> ite = list.iterator();
while(ite.hasNext()) {
System.out.println(ite.next());
}System.out.println("======= foreach 이용 순회");
for (Person p : list) {
System.out.println(p.getName());
}
}
홍길동1
홍길동1
홍길동2
홍길동3
======= itrator 이용 순회
Person [name=홍길동1, age=1, address=null]
Person [name=홍길동2, age=2, address=null]
Person [name=홍길동3, age=3, address=null]
======= foreach 이용 순회
홍길동
이순신
세종
세종
import java.util.Comparator;
public class PersonAgeSortComparator implements Comparator<Person>{
@Override
public int compare (Person o1,Person o2 ) {
int result =-1;
if (o1.getAge()> o2.getAge()) result = -1;
return result;
}
}
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
public class ListTest5 {
public static void main(String[] args) {
ArrayList<Integer> set = new ArrayList<>();
set.add(9);
set.add(6);
set.add(1);
set.add(3);
set.add(4);
System.out.println("정렬전: "+set);
Collections.sort(set);
System.out.println("정렬후: "+set);
System.out.println("정렬전: "+set);
Collections.reverse(set);
System.out.println("정렬후: "+set);
System.out.println("=============");
ArrayList<Person> set2 = new ArrayList<Person>();
set2.add(new Person("홍길동", 20,"서울"));
set2.add(new Person("이순신", 44,"전라"));
set2.add(new Person("강감찬", 30,"전라"));
System.out.println("정렬전: "+set2);
//나이기준정렬
Collections.sort(set2, new PersonAgeSortComparator());
//PersonAgeSortComparator 확인
System.out.println("정렬 후"+set2);
}
}
정렬전: [9, 6, 1, 3, 4]
정렬후: [1, 3, 4, 6, 9]
정렬전: [1, 3, 4, 6, 9]
정렬후: [9, 6, 4, 3, 1]
정렬전: [Person [name=홍길동, age=20, address=서울], Person [name=이순신, age=44, address=전라], Person [name=강감찬, age=30, address=전라]]
정렬 후[Person [name=강감찬, age=30, address=전라], Person [name=이순신, age=44, address=전라], Person [name=홍길동, age=20, address=서울]]
4. Map
HashMap은 저장되는 순서가 유지되지 않고, 단 하나의 null 키를 가질 수 있다.
Hashtable은 null키와 null값을 저장할 수 없다
main {
1) Person p =a();
2) =b();}
public a() {
//이름, 나이를 db에서 꺼내옴
//이름, 나이를 main에 리턴 필요
//return name, age; //error
//1) Personor 객체에 이름 나이 저장후 return Person
}
public b(){
//이름, 나이를 main 에 리턴 필요 ⇒ Map.put (”name”, 이름), Map.put(”age”, 나이)
return map;
}
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class MapTest {
public static void main(String[] args) {
Map map = new HashMap(); //다형성
map.put("one", "홍길동");
map.put("two", new Date());
map.put(1, "강감찬");
map.put(3.14, 10);
System.out.println(map.get("one"));
System.out.println(map.get("two"));
System.out.println(map.get(1));
System.out.println(map.get(3.14));
}
}
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class MapTest2 {
public static void main(String[] args) {
//key: String, value : String+ null 저장가능
HashMap <String, String> map = new HashMap<>(); //다형성
map.put("one", "홍길동");//덮어쓰기 됨
map.put("two", "이순신");
map.put("three", "유관순");
map.put("one", "강감찬");//덮어쓰기 됨
map.put("one", null);
map.put(null, null);
System.out.println(map.get("one"));//null
System.out.println(map.get("two"));
System.out.println(map.get("three"));
System.out.println(map.get("four"));//null
System.out.println(map.get("a"));//null
}
}
import java.util.Hashtable;
import java.util.Map;
public class MapTest3 {
public static void main(String[] args) {
//key: String, value : String+ null 저장가능
Map <String, String> map = new Hashtable<>(); //다형성
map.put("one", "홍길동");//덮어쓰기 됨
map.put("two", "이순신");
map.put("three", "유관순");
map.put("one", "강감찬");//덮어쓰기 됨
// map.put("one", null); //null 안됨
System.out.println(map.get("one"));//null
System.out.println(map.get("two"));
System.out.println(map.get("three"));
System.out.println(map.get("four"));//null
System.out.println(map.get("a"));//null
}
}
강감찬
이순신
유관순
null
null
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test {
public static void print(List<String> list) {
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
// static b => Arrays.asList 이용 홍길동1, 홍길동2, 홍길동3 List 생성리컨
//메인에서 리턴받은 데이터를 출력
public static List<String>b(){
List<String> list = Arrays.asList("홍길동1","홍길동2","홍길동3");
return list;
}
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("홍길동");
list.add("이순신");
list.add("유관순");
print(list); //list 출력함수
List<String>list2 = b();
print (list2);
}
}
홍길동
이순신
유관순
홍길동1
홍길동2
홍길동3
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class MapTest4 {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<>();
map.put("one", "홍길동");
map.put("two", "이순신");
map.put("three", "유관순");
System.out.println(map.get("one"));
System.out.println(map.get("three"));
System.out.println(map.get("two"));
System.out.println("크기: "+map.size());
System.out.println("키 포함 여부: "+map.containsKey("one"));
System.out.println("값 포함 여부: "+map.containsValue("유관순"));
map.replace("three", "강감찬");
//map.remove("two");
System.out.println(map);
System.out.println("===============");
//1.key값 전체
Set<String> keys = map.keySet();
System.out.println(keys);
System.out.println("===============");
for (String key : keys) {
System.out.println(key+": value="+map.get(key) );
}System.out.println("===============");
//2-2 iterator 이용 순회
Iterator<String> ite= keys.iterator();
while (ite.hasNext()) {
String key = (String) ite.next();
System.out.println(key+": value="+map.get(key) );
}
}
}
key-String | key-String |
“one” | 홍길동 |
“two” | 이순신 |
“three” | 유관순 |
- 킷값 전체 리턴.
Set<String> keys =map.keySet():Set<String>
//keys = set [two, one, three]
- 킷값 전체 순회 get호출
for (String key : keys) { //one, two, three
sysout (key+”\t”+map.get(key))// one +”\t”+map.get(one)
}
2-2) Interator<String> ite = keys.interator(); //키값 전체 순회용 iterator 생성
while (ite.hasNext()) {//one,two,three
String key =ite.next();
sysout (key+”\t”+map.get(key))// one +”\t”+map.get(one)
}
public class MapTest5 {
public static void main(String[] args) {
Map<String, Person> map = new HashMap<>();
map.put("one", new Person("홍길동", 20, "서울"));
map.put("two", new Person("이순신", 30, "전라"));
map.put("three", new Person("유관순", 40, "서울"));
//홍길동 이름, 나이만 출력
Person p = ((Person) map.get("one"));
System.out.println(p.getName() + "\t" + p.getAge());
System.out.println(map.get("one").getName());
//전체 순회 이름/나이 출력
Set <String> keys = map.keySet();
for(String key : keys) {
System.out.println("이름: " + map.get(key).getName() + "\t" + "나이: " + map.get(key).getAge());
}
System.out.println("=========== iterator 사용 코드");
Iterator<String> ite = keys.iterator();
while(ite.hasNext()) {
String key = ite.next();
Person p1 = map.get(key);
System.out.println(key + " : " + p1.getName()+ "\t" + p1.getAge());
}
}
}
Set <String> keys = map.keySet();
for (String key : keys){
Object o = map.get(key);
Person p = (Person)o;
sysout
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class MapTest6 {
public static void main(String[] args) {
ArrayList<Person> list = new ArrayList<Person>();
list.add(new Person("홍길동", 20, "서울"));
list.add(new Person("홍길동2", 30, "서울2"));
list.add(new Person("홍길동3", 40, "서울3"));
ArrayList<Person> list2 = new ArrayList<Person>();
list2.add(new Person("이순신", 20, "전라"));
list2.add(new Person("이순신2", 30, "전라2"));
list2.add(new Person("이순신3", 40, "전라3"));
HashMap<String, ArrayList<Person>> map =
new HashMap<String, ArrayList<Person>>();
map.put("one", list);
map.put("two", list2);
//데이터 출력하기
Set<String> keys = map.keySet();
for (String key : keys) {
ArrayList<Person> xxx =map.get(key);
for ( Person p : xxx) {
System.out.println(p.getName()+"\t"+ p.getAge());
}
}
}//end main
}
4.3 Properties
Hashtable의 하위 클래스인 Properties 클래스는 key와 value 모두 String로 저장할 때 사 용
import java.util.Properties;
public class MapTeat8 {
public static void main(String[] args) {
Properties prop = new Properties();
prop.setProperty("one", "홍길동");
prop.setProperty("two", "홍길동2");
prop.setProperty("three", "홍길동3");
String one = prop.getProperty("one");
System.out.println(one);
System.out.println(prop.getProperty("two"));
System.out.println(prop.getProperty("three"));
}
}
import java.util.Enumeration;
import java.util.Properties;
import java.util.Set;
public class MapTest9 {
public static void main(String[] args) {
//Properties 이용해서 시스템 환경변수 얻기
Properties props = System.getProperties();
Set<String> keys = props.stringPropertyNames();
for (String key : keys) {
System.out.println(key+ "="+props.getProperty(key));
}System.out.println("============");
Enumeration enu = props.propertyNames(); // 전체 키값만 저장
while (enu.hasMoreElements()) {
Object obj = enu.nextElement();
String key =(String) obj;
String value = props.getProperty(key);
System.out.println("enu를 이용한 출력 "+key+"="+value);
}
}
}
'Daily Codig Reminder' 카테고리의 다른 글
JDBC (0) | 2023.12.14 |
---|---|
자바 IO (0) | 2023.12.14 |
예외처리 와 제네릭컬렉션 (1) | 2023.12.11 |
핵심클래스 (0) | 2023.12.09 |
다형성 (1) | 2023.12.07 |