ArrayListコレクション
序文
これまでのところ、複数のデータを格納したいので、配列を使用できます。配列の長さは固定されており、データ変更のニーズに適応できません。
この問題を解決するために、Javaは別のコンテナjava.util.ArrayListコレクションクラスを提供します。これにより、データをより便利に格納および操作できます。
ArrayListもJDKが提供するクラスであり、直接使用します。
1.アレイレビュー
配列形式:
動的初期化:データ型[]配列名=新しいデータ型[長さ]; int [] arr =新しいint [長さ];
静的初期化:データ型[]配列名=新しいデータ型[] {要素1、要素2、要素3}
配列アクセス:
データの取得:arr [index]
データの変更:arr [index] =新しい値;
長さの取得:arr.length
举例:
int [] arr = new int [5];
int [] arr = new int [] {11、22、33};
String [] arr = new String [4];
配列の特性:
1。配列の長さは固定されています
2.配列は基本データ型または参照データ型を格納できます
2.ArrayListの概要
APIの確認
1.パッケージ
java.utilを確認します
2.クラスの説明を確認します
。ArrayListは複数のデータを格納できるコンテナでもあり、サイズを変更できます。
将来的には、データを追加または削除する必要があることがわかります。ArrayListを使用することをお勧めします。
。3。構築メソッドArrayList()を見て、デフォルトの容量が10のArrayListを作成します。
4.メンバーメソッド
booleanadd(Xxx x)を確認します。ArrayListの最後にデータを追加します
ArrayListを作成する形式(重要):
クラス名オブジェクト名=新しいクラス名();
ArrayListリスト=新しいArrayList();
ArrayListオブジェクトを作成し、格納されるデータ型は文字列です
概要:
配列の特徴:複数のデータを格納できるコンテナです
1.長さは固定されています
2.基本データ型と参照データ型を格納できます
ArrayListコレクション:複数のデータを格納できるコンテナです1。ArrayList
の長さはさまざまです。
コード:
public static void main(String[] args) {
String[] arr = new String[4];
arr[0] = "刘德华";
arr[1] = "张学友";
arr[2] = "郭富城";
arr[3] = "黎明";
// 创建一个ArrayList来存储String类型数据
ArrayList<String> list = new ArrayList<String>();
// 添加数据
// boolean add(Xxx x): 添加一个数据到ArrayList末尾
list.add("王宝强");
list.add("陈羽凡");
list.add("贾乃亮");
list.add("谢霆锋");
System.out.println("list = " + list); // [王宝强, 陈羽凡, 贾乃亮, 谢霆锋]
// ArrayList内部做了特殊处理让我们打印的时候打印的是内容.(toString我们后面会介绍)
}
3.ArrayListで一般的に使用されるメソッド。
複数のデータを保存する必要がある場合は、追加または削除します。ArrayListを使用します(一般的に使用されます)
追加、確認、削除
増加
ブールの追加(E eを)このリストの最後に、指定された要素を追加します。
void add(int index、E element)このリストの指定された位置に指定された要素を挿入します。
CheckEget
(intindex)指定された位置にある要素を返します。
Delete
E remove(int index)リスト内の指定された位置にある要素を削除します。
booleanremove(オブジェクトo)指定された要素(存在する場合)の最初の出現をリストから削除します。 E set(int index、E element)を
変更して
、このリストの指定された位置にある要素を指定された要素に置き換えます。
要素の数を取得し
ます。intsize()このリストの要素の数を返します。
public static void main(String[] args) {
// JDK7以后右边<>里面可以省略
ArrayList<String> list = new ArrayList<>();
// 增
// boolean add(E e) 将指定的元素追加到此列表的末尾。
list.add("马蓉");
list.add("白百何");
list.add("李小璐");
// 0 1 2
System.out.println("list = " + list); // [马蓉, 白百何, 李小璐]
// void add(int index, E element) 在此列表中的指定位置插入指定的元素。
list.add(1, "张柏芝");
// 0 1 2 3
System.out.println("list = " + list); // [马蓉, 张柏芝, 白百何, 李小璐]
// 查: E get(int index) 返回指定位置的元素。
String s1 = list.get(1);
System.out.println("get: " + s1); // get: 张柏芝
// 删
// 1.E remove(int index) 删除该列表中指定位置的元素
System.out.println("remove1: " + list.remove(0)); // remove1: 马蓉
System.out.println("list = " + list); // list = [张柏芝, 白百何, 李小璐]
// 2.boolean remove(Object o) 根据内容删除第一个出现的数据
list.add("白百何");
System.out.println("list = " + list); // list = [张柏芝, 白百何, 李小璐, 白百何]
list.remove("白百何"); // 0 1 2
System.out.println("list = " + list); // list = [张柏芝, 李小璐, 白百何]
// 改 E set(int index, E element) 修改指定索引位置的数据
String set = list.set(1, "凤姐");
System.out.println("set = " + set); // set = 李小璐 返回被修改的数据
System.out.println("list = " + list); // list = [张柏芝, 凤姐, 白百何]
// 获取元素的个数: int size() 返回此列表中的元素数。
System.out.println(list.size()); // 3
list.add("如花");
System.out.println(list.size()); // 4
}
Four。ArrayListは文字列とトラバースを格納します
import java.util.ArrayList;
java.util.Collectionsをインポートします。
ケースでは、
文字列を格納するArrayListコレクションを作成し、3つの文字列要素を格納し、プログラムを使用してコンソールでコレクションをトラバースする必要があります。
概要:
ArrayList周辺历固定格式
for(int i = 0; i <list.size(); i ++){// i = 0、1、2
System.out.println(list.get(i));
}
コード:
public static void main(String[] args) {
// 1.创建ArrayList集合
ArrayList<String> list = new ArrayList<String>();
// 2.往ArrayList中添加3个字符串数据
list.add("迪丽热巴"); // 0
list.add("古力娜扎"); // 1
list.add("马尔扎哈"); // 2
// 3.遍历ArrayList集合获取每个数据,进行打印
/*
System.out.println(list.get(0)); // 迪丽热巴
System.out.println(list.get(1)); // 古力娜扎
System.out.println(list.get(2)); // 马尔扎哈*/
// 以上代码是重复代码,只有索引在变化.改成循环.次数确定使用for循环遍历
for (int i = 0; i < list.size(); i++) {
// i = 0, 1, 2
System.out.println(list.get(i));
}
// list.fori: 神操作
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
5. ArrayListは、学生オブジェクトを格納およびトラバースします
要件:
学生オブジェクトを格納するコレクションを作成し、3つの学生オブジェクトを格納し、プログラムを使用してコンソールでコレクションをトラバースします
分析:
1。学生クラスを定義し
ます。2。3つの学生オブジェクトを作成します。3。
学生データを格納するためのArrayListコレクションを作成します。4。ArrayListコレクションに
学生を追加します。5。ArrayListコレクションを
トラバースします。各学生を取得します。
概要:
1。新しいオブジェクトがヒープに出力されます
。Studetns1はオブジェクトのアドレスを保存します2.stus.add(s1);オブジェクトをコレクションに追加します。実際の追加は、オブジェクトのアドレス
です3. ArrayList取り出されたときのオブジェクトでもありますアドレス、Studentタイプの変数を使用して保存します
コード:
1.学生クラスを自己定義する
2
public static void main(String[] args) {
// 2.创建3个学生对象
Student s1 = new Student("马云", 56); // Student s1 = 7a5d012c;
Student s2 = new Student("马化腾", 45); // Student s2 = 3fb6a447;
Student s3 = new Student("刘强东", 46); // Student s3 = 79b4d0f;
System.out.println("s1 = " + s1); // 7a5d012c;
System.out.println("s2 = " + s2); // 3fb6a447;
System.out.println("s3 = " + s3); // 79b4d0f;
// 3.创建ArrayList集合,用于存储学生数据
ArrayList<Student> stus = new ArrayList<>();
// 4.添加学生到ArrayList集合中
stus.add(s1); // 加进去的是什么? 7a5d012c
stus.add(s2); // 3fb6a447
stus.add(s3); // 79b4d0f
//
// System.out.println("stus = " + stus);
// 5.遍历ArrayList集合.得到每个学生
for (int i = 0; i < stus.size(); i++) {
// System.out.println(stus.get(i)); // 7a5d012c
Student s = stus.get(i); // i = 0 (7a5d012c) i = 1 (3fb6a447) i = 2 (79b4d0f)
System.out.println(s.getName() + "----" + s.getAge());
}
}
Six.demo05ArrayListは、学生オブジェクトを格納し、2をトラバースします。
要件:
学生オブジェクトを保存するコレクションを作成し、3つの学生オブジェクトを保存し、プログラムを使用してコンソールでコレクションをトラバースします。
学生の名前と年齢はキーボード入力から取得されます。
分析:
1。学生クラスを定義し
ます2.学生データを格納するためのArrayListコレクションを作成します
3.ユーザーがデータを入力するためのメソッドを定義し、コレクションに追加する学生を作成します
4.ArrayListコレクションをトラバースします。各学生を取得します
コード:
public static void main(String[] args) {
// 2.创建ArrayList集合,用于存储学生数据
ArrayList<Student> list = new ArrayList<>();
// 调用方法添加一个学生
addStudent(list);
addStudent(list);
addStudent(list);
// 4.遍历ArrayList集合.得到每个学生
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
System.out.println(stu.getName() + "--" + stu.getAge());
}
}
// 3.定义一个方法让用户输入数据,并创建学生添加到集合中
// 明确返回值类型: 不需要返回值: void
// 明确参数列表: 创建的学生往哪个集合中添加: 参数列表: ArrayList集合
public static void addStudent(ArrayList<Student> stus) {
// stus = list,就是外部传入的集合
// 让用户输入学生的姓名和年龄
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生的姓名:");
String name = sc.next();
System.out.println("请输入学生的年龄:");
int age = sc.nextInt();
// 创建学生对象
Student s = new Student(name, age);
// 将学生对象添加到集合中
stus.add(s);
}
Seven.demo06ArrayListは、基本的なデータ型を格納します
ArrayListは、参照データ型のみを格納できます。基本的なデータ型は格納できません。
Javaには、基本データ型ごとに対応する参照データ型があります。
対応する参照データ型(パッケージングクラス)
byte Byte
short Short
int Integer *****
long Long
float Float
double Double
char Character *** **
boolean Boolean
ArrayListに基本的なデータ型を保存するには、対応する参照データ型を記述する必要があります
概要:
ArrayListは基本データ型を格納できず、参照データ型のみを格納します。基本データ型のデータを格納する場合は、ラッパークラスを作成する必要があります。
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(110); // 0
list.add(119); // 1
list.add(120); // 2
list.add(122); // 3
list.remove(1);
int sum = 0;
// 遍历
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
sum += list.get(i);
}
System.out.println("sum = " + sum);
}