리스트, 맵

2023. 12. 12. 23:34Daily 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” 유관순

 

  1. 킷값 전체 리턴.

Set<String> keys =map.keySet():Set<String>

//keys = set [two, one, three]

  1. 킷값 전체 순회 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