32) 리스트 list

hahahoho셍·2021년 4월 24일
0

자바 공부

목록 보기
32/97
package ex05_collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;



//컬렉션 프레임워크
//프레임워크도 라이브러리의 집합
//골격을 잡아놓은것의 차이
//리스트안에 배열형 링크드리스트 형이 있음
//컬렉션의 리스트와, 맵(키와 벨류로 구성)을 가장 만이 씀

public class J20210422_01_list {

	public static void main(String[] args) {
		//List<E> 프레임워크
		//저장 순서가 있다. (인덱스가 있다.)
		//데이터의 중복 허용 가능
		//1) ArrayList : 배열 구조(연속적 공간의 할당.)
		//               검색시 유리 /  추가, 삭제가 어려움
		//ArrayList arrlist = new ArrayList();  //컨트롤 쉬프트 o 누르면 위에 임포트댐  //제네릭 설정을 안하면 오브젝트(최상위)로 자동 설정
		
		ArrayList<Integer> arrlist = new ArrayList<>();  //유지보수의 어려움으로 형을 정해줌
		
//		arrlist.add(10);  //add가 값 넣기
//		arrlist.add(22);
//		arrlist.add(33);
		System.out.println(arrlist.size());  //현재 초기화가 안되서 사이즈 없음
		
		for(int i = 1;i<5;i++) {  //반복문을 이용하여 값 넣기  //여기에 사이즈 넣으면 안댐 초기화 x
			arrlist.add(i*10);
		}
		System.out.println(arrlist);  //출력
		
		for(int i = 0;i<arrlist.size();i++) {  //어레이리스트의 사이즈로 출력
			System.out.println(arrlist.get(i)+100);  //겟으로 그 인덱스를 뺴옴
		}
		
		//foreach문
		for(int a:arrlist ){  //포이치문으로 출력
			System.out.println(a);
		}
		
		arrlist.remove(1);   //인덱스로 삭제
		System.out.println(arrlist);
		
		arrlist.add(2, 90);  //인덱스의 위치에 추가
		System.out.println(arrlist);
		
		arrlist.set(2, 70);  //인덱스의 값 바꾸기
		System.out.println(arrlist);
		
		
//		ArrayList<Double> arrlist1 = new ArrayList<>();  //실수형 넣어보기
//		arrlist1.add(10.5);
//		arrlist1.add(22.5);
//		System.out.println(arrlist1);
//		
//		ArrayList<String> arrlist2 = new ArrayList<>();   //문자형 넣어보기
//		arrlist2.add("q");
//		arrlist2.add("w");
//		System.out.println(arrlist2);
		
		//실습) 이름을 입력 받아 ArrayList만들기
//		ArrayList<String> arrlist5 = new ArrayList<>();  
//		Scanner sc = new Scanner(System.in);
//		
//		while (true){
//			System.out.println("이름은?");
//			String a = sc.next();
//			if(a.equals("q")) {
//				System.out.println("종료"); break;
//			}else {
//				arrlist5.add(a);
//			}
//		}
//		for(int i =0;i<arrlist5.size();i++) {  //하나씩 출력
//			System.out.println(arrlist5.get(i));
//		}
//		System.out.println(arrlist5);  //통출력
		
		//삭제 1)
//		System.out.println("삭제할 이름은?");
//		String a = sc.next();
//		arrlist5.remove(a);  //리무브 오브젝트로 변수로 선택 삭제 가능. (중복일시 첫번째만 삭제)
//		System.out.println(arrlist5);
		
		//삭제 2)
//		arrlist5.add("hong");arrlist5.add("park");arrlist5.add("park");arrlist5.add("park"); //하드코딩함
//		System.out.println(arrlist5);
//		System.out.print("삭제할 이름은?");
//		String name = sc.next();
//		for(int i=0; i< arrlist5.size(); i++) {
//			if (arrlist5.get(i).equals(name)) {
//				arrlist5.remove(i);
//				i--;
//			}
//		}
//		System.out.println(arrlist5);
		
		
		//삭제 3안  //이거 추천
		//반복자 iterator  :  인덱스를 사용하지 않음
//		arrlist5.add("hong");arrlist5.add("park");arrlist5.add("park");arrlist5.add("park"); //하드코딩함
//		System.out.println(arrlist5);
//		System.out.print("삭제할 이름은?");
//		String name = sc.next();
//		//반복자 생성
//		Iterator<String> it =  arrlist5.iterator();
//		while(it.hasNext()) {  //이동하지 않음
//			String n = it.next(); //넥스트가 이동하여 값 확인 값을 n에 넣음
//			if (name.equals(n)) it.remove();  // 내가 넣은 값과 같다면 삭제
//		}
//		System.out.println(arrlist5);
		
		
		//반복자를 이용하여 출력
		//선언과 동시에 초기화
		//  Arrays.asList() 고정길이 반환
//		List<String> list = new ArrayList<String> (Arrays.asList("레드","블루","핑크")); //이렇게 하면 리무브 가능
		
//		List<String> list = Arrays.asList("레드","블루","핑크");
//		System.out.println(list);
//		Iterator<String> it =  list.iterator();
//		while(it.hasNext()) {
//			//String n = it.next();
//			System.out.println(it.next());  //넥스트로 바로 출력 가능  // 다음 값이 없다면 자동으로 펄스, 빠져나옴
//		}
		
		
		//학생들의 키를 입력받아 평균을 구하시오.
//		ArrayList<Double> arrlist1 = new ArrayList<>();
//		Scanner sc = new Scanner(System.in);
//		double c =0;
//		int b =0;
//		while (true){
//			b++;
//		System.out.println(b+"번 키는?");
//		double a = sc.nextDouble();
//		if(a==00) {
//			System.out.println("종료"); break;
//		}else {
//			arrlist1.add(a);
//		}
//		}
//		for(int i =0;i<arrlist1.size();i++) {  
//			c +=arrlist1.get(i);
//			//System.out.println(arrlist1.get(i));
//		}
//		System.out.println(arrlist1);
//		System.out.println("총 합은 " + c);
//		System.out.println("평균은 " + c / arrlist1.size());
		
		
		//LinkedList : 리스트 기반
		//각 요소가 자신의 이전 요소의 주소와 다음요소의 주소를 가지고 있다.
		//추가, 삭제가 쉽다. 검색시 성능 저하
		
		LinkedList<String> linkedlist = new LinkedList<>();
		linkedlist.add("자바");
		linkedlist.add("파파");
		linkedlist.add("이썬");
		
		System.out.println(linkedlist);
		
		
		for (int i =0;i<linkedlist.size();i++) {
			System.out.println(linkedlist.get(i));
		}
		
		List<String> linkedlist1 = new LinkedList<>();  //유지 보수의 효율로 리스트형으로 선언(부모형, 인터페이스로)
		linkedlist1.add("qq");
		System.out.println(linkedlist1);
		
		
		
		
		
		
		
		
		
		
		
	}

}
profile
그냥 공부 한거 적는 벨로그 하하하핳ㅎ하하하핳하ㅏ

0개의 댓글

관련 채용 정보