728x90

 

list 안에 각각의 빈도 높은 메소드들을 다 써보고

어떤 방식으로 작동하는지와 반환값도 어떻게 반환되는지 파악하고

리스트의 코드 형태도 익숙해지는 중!

 

get 같은 경우 어디에 써먹을지 고민하게보게 됨. 해당 값을 가져와서 여기저기 유용할 것 같은데 당장 생각이 잘안난다

 

/******************************** collection 2nd practice ***************************************/	
public void method02() {

    ArrayList<Student> list = new ArrayList<Student>(3);


    // add(E e):boolean
    list.add(new Student("김",99));
    list.add(new Student("이",98));
    list.add(new Student("최",100));
    list.add(new Student("박",95)); // 길이 자동 추가 : 길이4

    System.out.println(list); // [김(99점), 이(98점), 최(100점), 박(95점)] 길이 4
    // Object의 toString()를 오버라이딩 때문에 주소값이 아닌 객체값이 바로나옴
    System.out.println(list.add(new Student("황",94))); // true // boolean값 반환


    // 장점1. 크기 제약 x
    // .size() : 인덱스 길이 반환
    System.out.println(list.size()); // 5


    // 장점2. 추가/삭제/정렬 기능처리 간단
    // add(int index, E elemnet) 
    list.add(5,new Student("차",88)); // 5번 인덱스에 '차' 추가
    list.add(5,new Student("사",87)); // 5번 인덱스 '차'자리에 '사'가 들어가면서 '차'가 뒤로 밀림

    System.out.println(list); // [김(99점), 이(98점), 최(100점), 박(95점), 황(94점), 사(87점), 차(88점)]


    // 삭제
    // remove(int index):E
//		// remove()의 return은 삭제한 값을 돌려준다
//		list.remove(7);
    System.out.println("remove(int index):E = "+list.remove(6)); // remove(int index):E = 차(88점)
    System.out.println(list); // [김(99점), 이(98점), 최(100점), 박(95점), 황(94점), 사(87점)]


    // 삭제
    // remove(Object o):boolean
    list.remove(new Student("사",87));
    System.out.println(list); // [김(99점), 이(98점), 최(100점), 박(95점), 황(94점)]

    System.out.println(list.remove(new Student("황",94))); // true - 반환값 불리안 겟
    System.out.println(list); // [김(99점), 이(98점), 최(100점), 박(95점)]


    // 지네릭 추가 : <String> 
    ArrayList<String> listStr = new ArrayList<String>(2);
    listStr.add("임");
    listStr.add("강");
    listStr.add("심");
    System.out.println(listStr); // [임, 강, 심]
    System.out.println(listStr.remove(2)); // 심
    System.out.println(listStr); // [임, 강] -> print에 써도 잘지워진다
    listStr.remove(new String("강"));
    System.out.println(listStr); // [임]
    // equals랑 hashCode가 잘 오버라이딩이 되어있기 때문에 삭제 가능


    // set(int index, E e)
    // 해당 인덱스 번호에 값  교체
    list.set(3, new Student("박박",99));
    System.out.println(list); // [김(99점), 이(98점), 최(100점), 박박(99점)]
    System.out.println(list.set(2, new Student("최최",1000))); // 최(100점)
    System.out.println(list); // [김(99점), 이(98점), 최최(1000점), 박박(99점)]


    //get(int index):E
    // 인덱스번호의 엘리먼트 값을 가져온다
    Student stu = list.get(1);
    System.out.println(stu); 		 // 이(98점)
    System.out.println(list.get(0)); // 김(99점)



    // contains(Object) : boolean
    // indexObject : int 

    System.out.println(list.contains(new Student("김",99))); // true
    System.out.println(list.indexOf(new Student("김",99)));	// 0

    // 지네릭<String>과 일반 참조객체<Student>의 오버라이딩 비교
    System.out.println(listStr.contains(new String("임")));   // true
    System.out.println(listStr.indexOf(new String("임")));	 // 0
    System.out.println(listStr.indexOf(new String("임없음"))); // -1 : 없는 값이라 -1반환
    //  equals메소드와 해쉬코드가 오버라이딩 되지 않으면 주소값이 달라 없는걸로 나옴. 현재는 오버라이딩된 상태


    // clear():void
    list.clear();
    System.out.println(list); 			 // []
//		System.out.println(listStr.clear()); // clear는 반환타입이 없는 void라 print시켜서 java.lang.Error 
    listStr.clear();

    // isEmpty():boolean
    System.out.println(list.isEmpty());		// true
    System.out.println(listStr.isEmpty());	// true


}
728x90
반응형
728x90

 

 

remote 연결, 조회, 연결해제

 

remote 연결

원격저장소(remote) 연결하기

git remote add <name> <url>

ex)

git remote add origin [<https://github.com/neverGiveUpppppp/kh-workspace.git>](<https://github.com/neverGiveUpppppp/kh-workspace.git>)

 

 

remote 목록보기

연결된 원격저장소(remote) 목록보기

git remote -v 

 

현재 로컬에 연결된 remote 목록    

 

remote 삭제

해당 원격저장소(remote) 삭제

git remote remove 리모트명

 

728x90
반응형
728x90

 

 

아래 사진을 보면 4번 파일은 정상적인데 5번 파일은 화살표시가 있고 클릭이 안된다

 

원인

상위의 폴더에서 .git 파일과 하위 폴더에서도 .git파일이 있어서 생기는 오류라고 한다

 

해결

1) .git 파일 제거

2)스테이지 파일 제거

이후 평소 때처럼, add commit push 절차를 진행하면 된다

 

코드로 보자

1) .git 파일 제거 : rm -rf .git

ls -al로 해당 폴더의 파일and폴더 리스트를 살펴보자

.git이 보인다. 이를 지워야하는데 삭제 명령어가 rm -rf .git이다

두번째 밑줄처럼 안먹힐 때가 있는데 다시하면 실행하면 지워진다.

세번째처럼 명령어 넣고 아무것도 안나오고 다음 커맨더가 뜨면 제대로 지워진 것이다. 다시 ls -al로 목록 확인하면 .git 없

는 것을 확인할 수 있다

 

2)스테이지 파일 제거 : git rm --cached . -rf

 

 

add, commit, push까지 진행 후 아래처럼 화살표시가 없어지고 클릭이 잘되는 것을 볼 수 있다

 

728x90
반응형
728x90

 

1-1. // add(E e):boolean

 

1-2. add(int index, E element):void

 

2. size()

 

3.remove()
remove(int index):E
remove(Object o):boolean

 

4. set()
set(int index, E e):E
== replace 대체

 

5. get() 
get(int index):E

 

 6. contains(Object) : boolean
해당 객체를 포함한지 true/false반환

 

7. indexOf(Object o): int 
해당 객체의 인덱스번호 반환
해당 값이 없을경우 -1 반환

 

8. equals(Object o):boolean
지정된 객체와 목록이 같은지 비교

 

9. clear()
clear():void

 

10. isEmpty():boolean

 

 

 

 

 

package MVC.controller;
import java.util.ArrayList;
import MVC.model.vo.pModelVo05;
public class pController05 {
	
	// List
	// ArrayList
	public void pList() {
		
		ArrayList<pModelVo05> al = new ArrayList<>();
		
		// e :제네릭에 지정 받은 타입을 그대로 쓰겠다. 
		// o : 안에 뭘 받아올지 모르니까 다 받을 수 있게 오브젝트로 쓰겠다. 엘레멘트로 타입을 지정할 필요가 없다
		
		// 1-1. // add(E e):boolean
		al.add(new pModelVo05("과일",5000));
		al.add(new pModelVo05("스낵 ",1500));
		System.out.println(al.add(new pModelVo05("껌",1500))); // true
		System.out.println(al); // [과일[5000원], 과자[1500원]]
		
		// 1-2. add(int index, E element):void
		al.add(3, new pModelVo05("쌀",50000)); // 마지막3번이 아닌 더 뒤4로 하니 길이 에러
		System.out.println(al); // [과일[5000원], 스낵 [1500원], 껌[1500원], 쌀[50000원]] 
//		System.out.println(al.add(3, new pModelVo05("믈",500))); // void 즉 없는 값을 출력하라해서 에러
		
		// 2. size()
		System.out.println(al.size()); // 4
		
		al.add(new pModelVo05("계란",6000)); // 자동 길이추가
		System.out.println(al); // [과일[5000원], 스낵 [1500원], 껌[1500원], 쌀[50000원], 계란[6000원]]
		
		
		// 3.remove()
		// remove(int index):E
		// remove(Object o):boolean
		System.out.println("=====remove=====");
		al.remove(0); // 과일 삭제
		System.out.println(al.remove(0)); // 스낵 [1500원] // 스낵삭제
		System.out.println(al); // 껌[1500원], 쌀[50000원], 계란[6000원]]
		
		al.remove(new pModelVo05("껌",1500)); // 작동x. 모델에서 오버라이딩 안했기 때문
		System.out.println(al); // [껌[1500원], 쌀[50000원], 계란[6000원]]
		// 모델 오버라이딩 후 			// [쌀[50000원], 계란[6000원]]
		
		System.out.println(al.remove(new pModelVo05("쌀",50000))); // true // 쌀 삭제
		
		pModelVo05 pm = new pModelVo05("계란",6000);
		System.out.println(al.remove(pm)); // true
		System.out.println(al); // []
		al.add(new pModelVo05("물",500));
		al.add(new pModelVo05("요거트",1000));
		System.out.println(al); // [물[500원], 요거트[1000원]]
		
		// 4. set()
		// set(int index, E e):E
		// == replace 대체
		System.out.println(al.set(1, new pModelVo05("커피",1500))); // 요거트[1000원]  // 바꿔진 엘리먼트값 출력
		al.set(1, new pModelVo05("커피",1500)); 				
		System.out.println(al); // [물[500원], 커피[1500원]]
		
		
		// 5. get() 
		// get(int index):E
		System.out.println(al.get(1)); // 커피[1500원]
		System.out.println(al.get(0)); // 물[500원]
		
		// 6. contains(Object) : boolean
		// 해당 객체를 포함한지 true/false반환
		System.out.println(al.contains(new pModelVo05("물",500))); // true
		System.out.println(al.contains(new pModelVo05("물",0))); // false
		
		
		// 7. indexOf(Object o): int 
		// 해당 객체의 인덱스번호 반환
		// 해당 값이 없을경우 -1 반환
		System.out.println(al.indexOf(new pModelVo05("물",500))); // 0
		System.out.println(al.indexOf(new pModelVo05("커피",1500))); // 1
		System.out.println(al.indexOf(new pModelVo05("커피",500))); // -1 // 없을경우-1반환
		
		
		// 8. equals(Object o):boolean
		// 지정된 객체와 목록이 같은지 비교
		System.out.println(al);  // [물[500원], 커피[1500원]]
		System.out.println(al.equals(new pModelVo05("물",500))); // false //[물[500원], 커피[1500원]]와 비교해서 false
		System.out.println(al.equals(new pModelVo05("커피",1500))); //al인 [물[500원], 커피[1500원]]와 비교 하니 false
		
		System.out.println(new pModelVo05("물",500).equals(new pModelVo05("물",500))); // true
		System.out.println(new pModelVo05("커피",1500).equals(new pModelVo05("커피",1500))); // true


		// 9. clear()
		// clear():void
		al.clear();
		System.out.println(al); // []
		
		// 10. isEmpty():boolean
		System.out.println(al.isEmpty()); // true
		
		System.out.println("=====ArrayList<string>=====");
		
		ArrayList<String> aList = new ArrayList<>();
		aList.add(new String("인내"));
		aList.add(new String("노력"));
		System.out.println(aList.remove(new String("인내")));
		System.out.println(aList);
//		aList.equals(new String("인내"));
		System.out.println(aList.equals(new String("인내")));
		
		
	}	
		
}

 

package MVC.model.vo;


public class pModelVo05 {


	private String flavor;
	private int price;
	
	public pModelVo05() {}
	public pModelVo05(String flavor, int price) {
		super(); // 안써도 됨. 자동완성해서 생긴것. 원래는 생성자를 불러올 때 부모생성자를 불러오고 시작함. 
		this.flavor = flavor;   // 그래야 자식 객체를 만들 때 부모 객체 생성자를 만들기 때문
		this.price = price;
	}
	
	// getter / setter
	public String getFlavor() {
		return flavor;
	}
	public int getPrice() {
		return price;
	}
	public void setFlavor(String flavor) {
		this.flavor = flavor;
	}
	public void setPrice(int price) {
		this.price = price;
	}
	
	// toString
	@Override
	public String toString() {
		return flavor+"["+price+"원]";
	}
		
	
	@Override
	public boolean equals(Object obj) {
		// 객체 비교
		if (this == obj) { // this는 주소값 비교할려고 넣은 것
			return true;
		}
		if(obj == null) {
			return false;
		}
		if(getClass() != obj.getClass()) { // 내 클래스 정보와 상대방의 클래스 정보가 같은지 비교
			return false;
		}
		
		pModelVo05 other = (pModelVo05)obj; // 다운캐스팅 : obj->Snack
		if(flavor == null) {      // other는 레퍼런스 변수
			if(other.flavor != null) { 
				return false;
			}
		}else if(!flavor.equals(other.flavor)) { // 이름에 대한 비교
			return false;
		}
		
		if(price != other.price) { // 목록에 대한 비교
			return false;
		}
		return true;
	}
	
	@Override
	public int hashCode() {
		final int PRIME = 31; // 컴퓨터가 이해하기 좋은 숫자가 31이라함
		int result = 1;
		
		result = PRIME * result + (flavor == null ? 0 : flavor.hashCode()); // 내 해쉬코드가 아니라 스트링의 해쉬코드를 가져오는 것
		result = PRIME * result + price; // 형이 안맞아서 에러나니 캐스팅 또는 소수점 없게끔 계산
		
		return result;
	}	
	
	
}

 

728x90
반응형
728x90

 

put(K key, V value):V

size():int

remove(Object key):V

remove(Object key, Object value):boolean

replace(K key, V value):default V

replace(K key, V oldValue, V newValue):boolean

 

 

 

 

 

 

 

// TreeMap
		//
		
		System.out.println("=====TreeMap=====");
//		TreeMap<String,pModelVo03> tm = new TreeMap<>();
		TreeMap<String,pModelVo03> tm = new TreeMap<>(hm);
		System.out.println(tm); // {내=으샤으샤[2원], 라=으랴차차[3원], 힘=아자아자[1원]}
		
		// size():int
		System.out.println(tm.size()); // 3
		
		// remove(Object key):V
//		System.out.println(tm.remove(new TreeMap("힘"), new TreeMap("아자아자",1)));
		System.out.println(tm.remove(new String("힘"))); // value리턴 : 아자아자[1원]
		System.out.println(tm); // {내=으샤으샤[2원], 라=으랴차차[3원]}
		
		System.out.println(tm.keySet());
		Set<String> set = tm.keySet(); 
		Iterator<String> itr = set.iterator();
		while(itr.hasNext()) {
			String str = itr.next();
			System.out.println(str);
		}
		System.out.println(tm.remove(new String("내")));
		System.out.println(tm); // {라=으랴차차[3원]}
		
		
		System.out.println("===replace===");
		// replace(K key, V oldValue, V newValue):boolean
		System.out.println(tm.replace(new String("라"), new pModelVo03("으랴차차",3), new pModelVo03("화이팅",4)));//true
		
		// remove(Object key, Object value):boolean
		tm.remove(new String("라"), new pModelVo03("화이팅",4));
		System.out.println(tm); // {}
		
		System.out.println("===TreeMap2===");
		TreeMap<String,pModelVo03> tm2 = new TreeMap<>();
		
		// put(K key, V value):V
		tm2.put(new String("a"), new pModelVo03("a",1));
		tm2.put(new String("b"),new pModelVo03("b",2));
		tm2.put(new String("c"),new pModelVo03("c",3));
		System.out.println(tm2); //  {a=a[1원], b=b[2원], c=c[3원]}
		
		// size():int
		System.out.println(tm2.size()); // 2
		// remove(Object key):V
		System.out.println(tm2.remove(new String("b"))); // 지운 밸류값 출력 : b[2원]
		System.out.println(tm2);						 // {a=a[1원], c=c[3원]}
		// remove(Object key, Object value):boolean
		System.out.println(tm2.remove(new String("a"),new pModelVo03("a",1)));// true
		System.out.println(tm2);						 // {c=c[3원]}
		// replace(K key, V value):default V
		System.out.println(tm2.replace(new String("c"), new pModelVo03("c",3))); // c[3원]
		// replace(K key, V oldValue, V newValue):boolean
		tm2.replace(new String("c"), new pModelVo03("c",3), new pModelVo03("d",4));
		System.out.println(tm2.replace(new String("c"), new pModelVo03("c",3), new pModelVo03("d",4)));//false
		System.out.println(tm2); // {c=d[4원]} : 키값c 밸류값d,4

 

 

 

728x90
반응형

+ Recent posts