728x90
▶Vector
package kr.or.ddit.basic;
import java.util.Vector;
public class VectorTest {
public static void main(String[] args) {
//객체생성
//벡터 내부에 배열이 있음
Vector v1 = new Vector(); //Vector<Object> v1 = new Vector<Object>();
System.out.println("처음 크기 :"+v1.size());
//Collection에는 데이터를 객체만 저장할 수 있다.
//데이터 추가 => add(추가할 데이터)
//반환값 : 추가 성공(true), 추가실패(false)
v1.add("aaaaa");
v1.add(new Integer(111)); //예전에는 숫자기입시 ,
// 객체생성시켜 래퍼클래스 사용하여 넣어야했음(박싱) ex)111
v1.add(123); //지금은 개선돼서 직접 숫자를 기입해도 됨,
// 박싱,언박싱이 자동으로 일어남(오토박싱,오토언박싱)
v1.add('a');
v1.add(true);
boolean r = v1.add(3.14f);
System.out.println("현재 크기 : "+ v1.size());
System.out.println("반환값 : "+ r);
//데이터 추가 : addElement(추가할 데이터)
//==> 예전 버전의 프로그램에서도 사용할 수 있도록 하기 위해 남아있는 메서드
//요즘은 add를 씀
v1.addElement("ccc");
System.out.println("v1 => "+v1.toString());
System.out.println("v1 => "+v1); //toString 생략가능
//데이터 추가 : add(index, 데이터)
//==> 'index'번째에 '데이터'를 끼워 넣는다.
//==> 'index'는 0부터 시작한다.
//==> 반환값을 없다.
v1.add(1,"kkk");
System.out.println("v1 => "+v1);
// 데이터 꺼내오기 : get(index)
//==>'index'번째 데이터를 반환한다.
int data = (int)v1.get(2);
System.out.println("data => "+data);
String str = ((String)v1.get(0));
System.out.println("str => "+str);
//데이터 수정하기 :set(index,새로운 데이터)
//==>'index'번째의 데이터를 '세로운 데이터'로 덮어쓴다
//반환값 : 변경되지 못하기 전의 원해데이터
String temp = (String)v1.set(0,"zzzz");
System.out.println("v1 =>"+v1);
System.out.println("원래의 데이터 : "+temp);
//데이터 삭제하기 : remove(index)
//==>'index' 번째의 데이터를 삭제한다
//==>'반환값' 번째의 데이터를 삭제한다
v1.remove(0);
System.out.println("v1 =>"+v1);
temp = (String)v1.remove(0);
System.out.println("v1 =>"+v1);
System.out.println("삭제된 데이터 =>"+temp);
//데이터 삭제하기 : remove(삭제할 데이터)]
//==> '삭제할 데이터'를 찾아서 삭제한다.
//==> '삭제할 데이터'가 여러개이면 앞에서부터 삭제한다.
//==> 반환값 : 삭제성공(true), 삭제실패(false)
//==> 삭제할 데이터가 '정수형'이거나 'char형'일 경우에는 반드시
// 객체로 변환해서 사용해야 한다.
v1.remove("ccc");
System.out.println("v1 => "+v1);
// v1.remove(123); //인덱스로 인식하여 오류
// System.out.println("v1 => "+v1);
v1.remove(new Integer(123)); //값을 제거할 때는 오토박싱이 일어나지않음
System.out.println("v1 => "+v1);
//v1.remove('a'); //a의 코드값인 97로 인식하여 오류
v1.remove(new Character('a'));
System.out.println("v1 => "+v1);
v1.remove(true);
System.out.println("v1 => "+v1);
//------------------------------------------------------------
/*
* 제네릭 타입(Generic type) ==> 클래스 내부에서 사용할 데이터의
* 데이터 타입을 외부에서 지정하는 기법으로 객체를 선언할 때
* < >안에 그 객체의 내부에서 사용할 데이터의 타입을 정해주는 것을 말한다.
* 이런식으로 선언하게 되면 지정한 데이터 타입 이외의 다른 종류의 데이터를
* 저장할 수 없다.
* 이 때 제네릭으로 선언될 수 있는 데이터 타입은 클래스형이어야 한다.
* (int ==> Integer, boolean ==> Boolean, char==> Character, ...)
* ==> 제네릭 타입으로 선언하게 되면 데이터를 꺼내올 때
* 형 변환 없이 꺼내올 수 있다.
*/
Vector<String>v2 = new Vector<String>();
Vector<Integer>v3 = new Vector<Integer>();
v2.add("안녕하세용");
//v2.add(100); ==> 오류 : 다른 종류의 데이터를 저장할 수 없다.
String temp2 = v2.get(0); // 형변환 없이 사용한다.
Vector<Vector> vv = new Vector<Vector>();// 2차원배열처럼 쓸 수 있음
//-------------------------------------------------------------------
System.out.println("-------------------------------------------------");
//전체 데이터 삭제 : clear();
v2.clear();
System.out.println("v2의 size => "+v2.size());
v2.add("AAA");
v2.add("BBB");
v2.add("CCC");
v2.add("DDD");
v2.add("EEE");
Vector<String> v4 = new Vector <String>();
v4.add("BBB");
v4.add("EEE");
System.out.println("v2 => "+v2);
System.out.println("v4 => "+v4);
//데이터 삭제하기 : removeAll(Collection객체);
//==> Collection 객체가 가지고 있는 데이터를 모두 삭제한다.
//==> 반환값 : 성공(true),실패(false)
v2.removeAll(v4); // v2에 있는 데이터 중 v4가 가지고 있는
//데이터와 일치하는 것들을 모두 삭제한다.
System.out.println("v2 => "+v2);
System.out.println("-------------------------------------------------");
//-----------------------------------------------
v2.clear();
v2.add("AAA");
v2.add("BBB");
v2.add("CCC");
v2.add("DDD");
v2.add("EEE");
//벡터의 데이터를 순서대로 모두 가져와 사용하고 싶으면 반복문을 사용
//(주로 for문을 사용)
for(int i =0; i<v2.size(); i++) {
System.out.println(i + "번째 자료 : "+v2.get(i));
}
System.out.println();
//향상된 for문
for(String s: v2)
System.out.println(s);
}
}
▶ArrayList
package kr.or.ddit.basic;
import java.util.ArrayList;
public class ArrayListTest01 {
public static void main(String[] args) {
//ArrayList는 기본적인 사용법이 Vector와 같다.
ArrayList list1 = new ArrayList();
//add()메서드로 추가
list1.add("aaa");
list1.add("bbb");
list1.add(123);
list1.add('k');
list1.add(false);
list1.add(123.45);
System.out.println("size ==> "+list1.size());
System.out.println("list1 ==> "+list1); //.toString생략
//get()메서드로 데이터를 꺼내온다.
System.out.println("1번쨰 자료 : "+list1.get(1));
//데이터 끼워넣기
list1.add(3, "zzz");
System.out.println("list1 => "+list1);
//데이터변경하기
String temp =(String)list1.set(3, "yyy");
System.out.println("list1 => "+list1);
System.out.println("list1 => "+temp);
//삭제도 같다.
list1.remove(3);
System.out.println("list1 => "+list1);
list1.remove("bbb");
System.out.println("list1 => "+list1);
//제네릭을 사용할 수 있다.
ArrayList<String>list2 = new ArrayList<String>();
list2.add("AAA");
list2.add("BBB");
list2.add("CCC");
list2.add("DDD");
list2.add("BBB");
list2.add("EEE");
for(int i =0; i<list2.size(); i++) {
System.out.println(i+"==>"+list2.get(i));
}
System.out.println("--------------------------------");
for(String str : list2){
System.out.println(str);
}
System.out.println("--------------------------------");
//contains(비교객체) => 리스트에 '비교객체'가 있으면 true, 없으면 false를 반환
System.out.println("DDD값 : "+list2.contains("DDD"));
System.out.println("zzz값 : "+list2.contains("zzz"));
// indexOf(비교객체)
//lastIndexOf(비교객체)
//==>리스트에 '비교객체'가 있으면 '비교객체'가 저장되어 있는
// index값을 반환하고 '비교객체' 가 없으면 -1을 반환
//indexOf()는 앞에서부터 뒤쪽방향으로 검색
//lastIndexOf()는 뒤에서 앞쪽방향으로 검색
System.out.println("1. BBB위치값 : " + list2.indexOf("BBB"));
System.out.println("2. BBB위치값 : " + list2.lastIndexOf("BBB"));
System.out.println("3. zzz위치값 : " + list2.lastIndexOf("zzz"));
System.out.println("--------------------------------");
//toArray()==>리스트 안의 데이터를 배열로 변환하여 반환
// ==> 기본적으로 Object형 배열로 변환
Object[]strArr = list2.toArray();
// String[]strArr = (String[])list2.toArray();
// ==> 이런 방법으로는 형변환 안됨
// toArray(new <제네릭타입>[0]);
// ==>제네릭타입의 배열로 변환
String[]strArr2 = list2.toArray(new String[0]);
for(String str : strArr2) {
System.out.println(str);
}
System.out.println("배열의 개수 : "+strArr.length);
for(Object i:strArr) {
System.out.println(i);
}
System.out.println("--------------------------------");
}
}
package kr.or.ddit.basic;
import java.util.ArrayList;
import java.util.Scanner;
/*
* 문제) 5명의 사람 이름을 입력 받아 ArrayList에 저장한 후에
* 이 들 중 '김'씨 성의 이름을 모두 출력하시오
*/
public class ArrayListTest02 {
public static void main(String[] args) {
Scanner scr = new Scanner(System.in);
ArrayList<String> arr = new ArrayList<String>();
for(int i =0; i<5;i++) {
System.out.println("이름을 입력하세요 : ");
arr.add(i, scr.next());
}
for(int j=0; j<arr.size(); j++) {
if(arr.get(j).substring(0,1).equals("김")) {
System.out.println(arr.get(j));
}
}
}
static void Arraysam1(){
Scanner scr = new Scanner(System.in);
ArrayList<String> nameList = new ArrayList<String>();
System.out.println("5명의 이름을 입력하세요 : ");
for(int i =0; i<5;i++) {
System.out.println("(i+1)번째 이름 : ");
String name = scr.next();
nameList.add(name);
}
System.out.println();
System.out.println("김씨 성을 가진 사람들... ");
for(int j=0; j<nameList.size();j++) {
// if(nameList.get(j).charAt(0)=='김') {
// System.out.println(nameList.get(j));
// }
// if(nameList.get(j).indexOf("김")==0) {
// System.out.println(nameList.get(j));
// }
// nameList.get(j).startsWith("김")==true 트루생략가능
if(nameList.get(j).startsWith("김")) {
System.out.println(nameList.get(j));
}
}
}
}
package kr.or.ddit.basic;
import java.util.ArrayList;
import java.util.Scanner;
/* 문제2) 5명의 별명을 입력 받아 ArrayList에 저장하고 이들 중에 별명의
* 길이가 제일 긴 별명을 출력하시오.
* (단, 각 별명의 길이는 모두 다르게 입력한다.)
*/
public class ArrayListTest2_2 {
public static void main(String[] args) {
Scanner scr = new Scanner(System.in);
ArrayList<String> arr = new ArrayList<String>();
int max =0;
int a=0;
for(int i =0; i<5;i++) {
System.out.println("이름을 입력하세요 : ");
arr.add(i, scr.next());
}
for(int j=0; j<arr.size(); j++) {
if(arr.get(j).length()>max) {
max=arr.get(j).length();
a=j;
}
}
System.out.println(arr.get(a));
}
static void Arraysam2(){
Scanner scr = new Scanner(System.in);
ArrayList<String> aliasList = new ArrayList<String>();
System.out.println("서로 다른 길이의 별명을 5번 입력하세요.");
for(int i =1; i<=5; i++) {
System.out.println(i+"번째 별명 : ");
String alias = scr.next();
aliasList.add(alias);
}
System.out.println();
//제일 긴 별명이 저장될 변수 선언
//list의 첫 번째 데이터로 초기화
String maxAlias = aliasList.get(0);
for(int i =1; i<aliasList.size(); i++) {
if(maxAlias.length()< aliasList.get(i).length()) {
maxAlias = aliasList.get(i);
}
}
System.out.println("제일 긴 별명 : "+maxAlias);
}
}
package kr.or.ddit.basic;
/* 문제3) 5명의 별명을 입력받아 ArrayList에 저장하고 이들 중에 별명의
* 길이가 제일 긴 별명들을 출력하시오
* (단, 각 별명의 길이가 같은 것이 존재 할 수 있다.)
*/
import java.util.ArrayList;
import java.util.Scanner;
public class ArrayList2_3 {
public static void main(String[] args) {
Scanner scr = new Scanner(System.in);
ArrayList<String> arr = new ArrayList<String>();
ArrayList<String> str = new ArrayList<String>();
int max =0;
int a=0;
for(int i =0; i<5;i++) {
System.out.println("이름을 입력하세요 : ");
arr.add(i, scr.next());
if(arr.get(i).length()>max) {
max=arr.get(i).length();
}
}
for(int j=0; j<arr.size(); j++) {
if(max==arr.get(j).length()) {
a=j;
str.add(arr.get(a));
}
}
System.out.println(str);
}
static void Arraysam3(){
Scanner scan = new Scanner(System.in);
ArrayList<String> aliasList = new ArrayList<String>();
System.out.println("별명을 5번 입력하세요.");
for(int i =1; i<=5; i++) {
System.out.println(i+"번째 별명 : ");
String alias = scan.next();
aliasList.add(alias);
}
System.out.println();
//제일 긴 별명이 길이가 저장될 변수 선언
//list의 첫 번째 데이터의 길이로 초기화
int maxLength = aliasList.get(0).length();
for(int i =1; i<aliasList.size(); i++) {
if(maxLength< aliasList.get(i).length()) {
maxLength = aliasList.get(i).length();
}
}
System.out.println("제일 긴 별명들....");
for(int i=0; i<aliasList.size();i++) {
if(aliasList.get(i).length()==maxLength) {
System.out.println(aliasList.get(i));
}
}
}
}
728x90
'ddit > Java' 카테고리의 다른 글
MVC패턴(model-view-controller)< VO,DAO,Service,Controller> (0) | 2022.07.26 |
---|---|
Stack, Queue, Sort (0) | 2022.06.22 |
객체지향개념을 이해하기 위한 게임만들기 (0) | 2022.06.10 |
java eclipse에서 oracle계정 연동, 시퀀스, 프로시저 (0) | 2022.06.09 |
HashMap (0) | 2022.06.08 |