qordpsem 2024. 5. 23. 11:55

#난수 연습

import java.util.Random;

//난수연습하기
public class RandomName {
	public static void main(String[] args) {
		String[] data = {"가","나","다","라","마","바","사"};
		Random r = new Random();
		int n = r.nextInt(data.length);
		System.out.println(n);
		System.out.println(data[n]);
	}
}

결과는 [0 , 가] 또는 [1, 나] 이런식으로 나온다

 

import java.util.Random;

//난수연습하기
public class RandomName {

	public static void main(String[] args) {
		String[] data = {"가","나","다","라","마","바","사"};
		Random r = new Random();
		int n = r.nextInt(data.length);  //7개를 나누면 나머지가 0~6까지로 인덱스 수와 동일
		String name = "";
		for(int i =0; i<100; i++) {
			name = data[i % data.length];
			System.out.println(name);
			try {
				Thread.sleep(100);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		System.out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ");
		System.out.println("당첨자 : "+data[n]);
	}
}

이렇게 하면

가~사를 반복하다가 결과값이 나온다

Thread.sleep(); 을 치면 빨간줄이 뜨는데 그때 try,catch를 적용하는 버튼을 누르면 코드가 이렇게 생성된다

 

 


 

#List (데이터 중복 허용)

- ArrayList  :  자바의 컬렉션 중에서 가장 많이 사용

- LinkedList   :   데이터의 중간에 추가 삭제가 빈번한 경우 사용하면 ArrayList보다 효율적

 

 

import java.util.ArrayList;

public class ArrayListTest {
	public static void main(String[] args) {
		ArrayList data = new ArrayList();
		data.add("연필");
		data.add("지우개");
		data.add("샤프");
		data.add("만년필");
		data.add("만년필");
		data.add(100);
		System.out.println(data);
		//List는 인덱스에 의해 데이터에 접근 (배열처럼)
		String str = (String)data.get(1); //끄집어올땐 해당 자료형으로 변환해줘야함
		int qty = (Integer)data.get(5); //끄집어올땐 해당 자료형으로 변환해줘야함
		System.out.println(str);
		System.out.println(qty);
	}
}

 

가져올때 해당 자료형으로 변환하기

 

 

 

 

ArrayList list = new Arraylist() 와 같이 리스트를 생성하면 리스트에 온갖 자료형을 담을 수 있음

이게 좋은 줄 알았는데 컬렉션을 경험해보니 좋은게 아니었음

만약 리스트에 Person도 담고 Shape도 담고 Employee도 담고 등등

이렇게 되었을때 list에 담긴 데이터의 수 만큼 반복하여 결국 그 요소에 따라 일처리를 시켜야하는데

각각 자료형이 다르면 일일이 instanceof 연산자로 물어보고 형변환한 후

해당 클래스에 메소드 호출해야하는 것은 상당히 번거로움

가능하면 Object 보다는 내가 만든 클래스의 상속관계로 범위를 제한하는거 좋음

즉 리스트에 담는 자료형은 제한하도록 합니다

이것을 "제네릭"이라고 합니다

ArrayList<Person> list = new ArrayList<Person>();

 

이렇게 리스트를 만들어두면