?
集合和陣列的對比(為什么要有集合)
分為倆點
1. 長度:陣列的長度是固定的,集合的長度是可變的,
2. 存盤型別:
陣列:可以存盤基本資料型別,參考資料型別,
集合:只能存盤參考資料型別,
小tips:
基本資料型別在集合中存盤要使用包裝類,
基本資料型別對應的包裝類如下:
byte => Byte short => Short
int => Integer long => Long
float => Float double => Double
boolean => Boolean
char => Character
泛型
new ArrayList<泛型>();
泛型就是限定集合中存盤資料的型別
ArrayList成員方法
集合的常用的成員方法主要就是增刪改查
E為泛型的型別
boolean add(E e); 添加元素,回傳true或false
boolean remove(E e); 洗掉元素
E remove(int index); 洗掉指定索引的元素,回傳洗掉的元素
E set(int index,E e); 修改指定索引的元素,回傳修改前的元素
E get(int index); 獲取指定索引的元素
int size(); 回傳集合的長度,也就是集合中元素的個數
附上例題
1.現有如下字串元素:["aaa", "bbb", "aaa", "aaa", "ccc", "bbb"],請將所有的元素按順序存入ArrayList集合中,并遍歷集合查看存盤結果,
//現有如下字串元素:["aaa", "bbb", "aaa", "aaa", "ccc", "bbb"],請將所有的元素按順序存入ArrayList集合中,并遍歷集合查看存盤結果,
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("aaa");
list.add("aaa");
list.add("ccc");
list.add("bbb");
StringJoiner sj = new StringJoiner(", ", "[", "]");
for (int i = 0; i < list.size(); i++) {
sj.add(list.get(i));
}
System.out.println(sj);
}
2. 請定義教師(Teacher)類,屬性包含姓名和專業名稱,將若干教師物件存入ArrayList集合中,并遍歷集合列印教師資訊
domain:
public class Teacher {
private String name;
private String course;
public Teacher() {
}
public Teacher(String name, String course) {
this.name = name;
this.course = course;
}
/**
* 獲取
* @return name
*/
public String getName() {
return name;
}
/**
* 設定
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 獲取
* @return course
*/
public String getCourse() {
return course;
}
/**
* 設定
* @param course
*/
public void setCourse(String course) {
this.course = course;
}
public String toString() {
return "Teacher{name = " + name + ", course = " + course + "}";
}
}
main:
//請定義教師(Teacher)類,屬性包含姓名和專業名稱,將若干教師物件存入ArrayList集合中,并遍歷集合列印教師資訊,格式如下
//姓名:趙老師, 專業:javase
//姓名:錢老師, 專業:javaee
//姓名:孫老師, 專業:php
//姓名:李老師, 專業:python
public static void main(String[] args) {
ArrayList<Teacher> list = new ArrayList<>();
list.add(new Teacher("xiaowang", "java"));
list.add(new Teacher("xiaoming", "python"));
list.add(new Teacher("xiaosu", "c++"));
for (int i = 0; i < list.size(); i++) {
System.out.println("姓名:" + list.get(i).getName() + "\t" + "課程:" + list.get(i).getCourse());
}
}
3.
有如下員工資訊: 姓名:張三,工資:3000 姓名:李四,工資:3500 姓名:王五,工資:4000 姓名:趙六,工資:4500 姓名:田七,工資:5000 先需要將所有的員工資訊都存入ArrayList集合中,并完成如下操作: 1、判斷是否有姓名為“王五”的員工,如果有,改名為“王小五” 2、判斷是否有姓名為“趙六”的員工,如果有,將其洗掉 3、給姓名為“田七”的員工,漲500工資
domain:
public class Worker {
private String name;
private int salary;
public Worker() {
}
public Worker(String name, int salary) {
this.name = name;
this.salary = salary;
}
/**
* 獲取
* @return name
*/
public String getName() {
return name;
}
/**
* 設定
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 獲取
* @return salary
*/
public int getSalary() {
return salary;
}
/**
* 設定
* @param salary
*/
public void setSalary(int salary) {
this.salary = salary;
}
public String toString() {
return "Worker{name = " + name + ", salary = " + salary + "}";
}
}
main:
public static void main(String[] args) {
ArrayList<Worker> list = new ArrayList<>();
list.add(new Worker("張三",3000));
list.add(new Worker("李四",3500));
list.add(new Worker("王五",4000));
list.add(new Worker("趙六",4500));
list.add(new Worker("田七",5000));
//1.
if(contain(list,"王五")) {
int index = getIndex(list, "王五");
Worker worker = list.get(index);
worker.setName("王小五");
System.out.println(worker.toString());
}
//2.
if(contain(list,"趙六")) {
int index = getIndex(list, "趙六");
Worker worker = list.remove(index);
System.out.println(worker.toString());
}
//3.
if(contain(list,"田七")) {
int index = getIndex(list, "田七");
Worker worker = list.remove(index);
int salary = worker.getSalary() + 500;
worker.setSalary(salary);
System.out.println(worker.toString());
}
}
//是否存在
public static boolean contain(ArrayList<Worker> list,String name) {
return getIndex(list,name) > 0;
}
//獲取元素的索引 存在回傳索引,不存在回傳-1
public static int getIndex(ArrayList<Worker> list,String name) {
for (int i = 0; i < list.size(); i++) {
Worker worker = list.get(i);
if(worker.getName().equals(name)){
return i;
}
}
return -1;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/534120.html
標籤:其他
