JAVA

자바 List

커피마시기 2023. 9. 23. 23:02

 

 

 

 

■ List

 

List는 자바에서 제공하는 데이터 구조 중 하나이며 여러개의 데이터를 저장 할 수 있는 자료형이다. 배열과 달리 List에 저장된 데이터의 개수가 변할수 있다는 점이 있으며 데이터의 추가 삭제 등이 용이하다

 

 

List는 인터페이스로 정의 되어 있으며 제네릭(Generic)을 지원하여 다양한 자료형의 데이터를 저장 할 수 있다

import java.util.ArrayList;
import java.util.List;

public class Main {

	public static void main(String[] args) {
		List<String> list1 =  new ArrayList<>();
		List<Integer> list2=  new ArrayList<>();
	}
}

 

● List에는 다양한 메소드가 존재한다

public static void main(String[] args) {
List<String> list =  new ArrayList<>();
		
list.add("고양이"); // add -> 데이터를 추가한다
list.remove(0); // remove -> 데이터를 삭제한다
list.add("고양이");
list.set(0, "강아지"); // set -> 지정된 인덱스에 해당하는 데이터를 변경한다
String animal = list.get(0);  // -> 저장된 인덱스에 해당하는 데이터를 반환한다
System.out.println(animal);
System.out.println(list.size()); // size 저장된 데이터의 개수를 반환한다
	}
}

 

 


 

List를 활용해보기

- Note1, Note2 두개의 클래스와 Main 클래스에서 출력을 할 수 있도록 구성하였다.

 

 

 

●  1. 필드, 생성자, getter setter, 출력메소드 toString을 만들어주었다.

public class Note1 {
	private String userId;
	private String passwd;
	private int age;
	private String address;
	
	public Note1() {
		
	}
	
	public Note1(String userId, String passwd, int age, String address) {
		this.userId = userId;
		this.passwd = passwd;
		this.age = age;
		this.address = address;
	}
	
	public String getUserId() {
		return userId;
	}
	public void setUserId(String userId) {
		this.userId = userId;
	}
	public String getPasswd() {
		return passwd;
	}
	public void setPasswd(String passwd) {
		this.passwd = passwd;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	
	@Override
	public String toString() {
		return "아이디 : " + userId + " 비밀번호 : " + passwd + " 나이 : " + age + " 주소 : " + address;
	}
}

 

 

 

●  2. Note1이라는 클래스에 n1 -> setter를 통해 데이터를 추가하였고 n2 -> 생성자를 통해 바로 추가 해주었다 이후 Note2 클래스 담은 note2를 생성해주었다.

		Note1 n1 = new Note1();
		Note1 n2 = new Note1("asdf", "5678", 20, "제주도");
		
		n1.setUserId("qwer");
		n1.setPasswd("1234");
		n1.setAge(28);
		n1.setAddress("경상남도");
        
       		Note2 note2 = new Note2();

 

 

 

●  3. Note2 클래스에 Note1 객체를 담은 List를 생성해주었다. addInfo() 매개변수에 넣은 note1을 통해서 add 메소드를 이용하여 list에 추가해주었다. showInfo 메소드에는 향상된 for문을 이용하여 출력을 하도록 하였다. 이후 deleteInfo 메소드에는 id 값을 받아 list에 저장된 id와 일치하면 삭제 하도록 만들어주었다.

public class Note2 {
	
	List<Note1> list = null;
	
	public Note2() {
		list = new ArrayList<>();
	}
	
	public void addInfo(Note1 note1) {
		list.add(note1);
	}
	
	public void showInfo() {
		for(Note1 n : list) {
			System.out.println(n);
		}
	}
	
	public void deleteInfo(String id) {
		
		for(int i = 0; i < list.size(); i++) {
			
			String info = list.get(i).getUserId();
			
			if(info == id) {
				list.remove(i);
				System.out.println("일치한 id에 대한 정보가 삭제되었습니다.");
			}
		}
	}
}

 

 

●  4. Main페이지에서 Note2 클래스의 메소드를 활용하여 추가, 출력, 삭제를 하여 결과값을 출력해보았다.

public class Main {

	public static void main(String[] args) {
		
		Note1 n1 = new Note1();
		Note1 n2 = new Note1("asdf", "5678", 20, "제주도");
		
		n1.setUserId("qwer");
		n1.setPasswd("1234");
		n1.setAge(28);
		n1.setAddress("경상남도");
		
		Note2 note2 = new Note2();
		
		note2.addInfo(n1);
		note2.addInfo(n2);
		
		note2.showInfo();
		System.out.println("");
		
		note2.deleteInfo("qwer");
		System.out.println("");
		
		note2.showInfo();
	}
}

 

 

출력

 

 

 


 

 

-Today short review-

 


배운것을 토대로 새로 만들어 보았는데 틀린점이나 잘못 알고 있는 부분이 있다면 알려주시면 감사하겠습니다.

 

'JAVA' 카테고리의 다른 글

자바 상속 extends  (0) 2023.09.29
자바 Map  (0) 2023.09.27
자바 - 배열/객체 배열  (0) 2023.09.20
자바 (클래스/객체/메소드)  (0) 2023.09.18
자바 반복문 - for & while  (0) 2023.03.30