Python 官方文档:入门教程 => 点击学习
目录ArrayList中存放引用数据类型看下面一个例子Java 引用数据类型 ArrayList集合引用数据类型(类)ArrayList 集合ArrayList中存放引用数据类型 A
ArrayList中存放引用类型时,存放的是一个引用,因此在放入ArrayList之后再进行改动会影响到ArrayList中的值
import java.util.ArrayList;
public class Student implements Cloneable{
private int age;
private String name;
public static void main(String[] args) {
ArrayList<Student> students = new ArrayList<Student>();
Student st = new Student();
st.age = 10;
st.name = "marco";
students.add(st);
st.age = 20; //修改age值
System.out.println(students.get(0).age); //输出为20
}
}
同样,如果ArrayList中存放的也是ArrayList类型,如ArrayList<ArrayList<Integer>>,对里面ArrayList的修改同样会影响到外层的ArrayList,如果想不受到影响可以在放入ArrayList时进行clone操作,对于ArrayList来说可以使用new ArrayList<ArrayList<Integer>>(list)来进行复制。
分类
提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类、Random类。
我们可以把类的类型为两种:
类的定义和使用
java代码映射成现实事物的过程就是定义类的过程。
我们就拿一部手机进行分析,它能用来做什么呢?它可以打电话,上网,聊微信等,这些就是手机所提供的功能,也就是方法;手机也有它的特征,如颜色、尺寸大小、品牌型号等,这些就是手机的特征,也就是属性。
目前,我们只关注类中的属性,类中的方法在面向对象部分再进行学习。
类的定义格式
创建java文件,与类名相同
public class 类名{
数据类型 属性名称1;
数据类型 属性名称2;
…
}
例如:
public class Phone {
String brand;// 品牌型号
String color;// 颜色
double size; // 尺寸大小
}
类的使用方式
有如下步骤
当有了Phone数据类型的变量后,我们就可以使用Phone类中的属性了。对属性的访问我们来演示一下,如下所示:
public class Test {
public static void main(String[] args) {
//定义了一个Phone类型的变量p
Phone p = new Phone();
//访问p中的brand品牌属性
p.brand = "苹果6s";
//访问p中的color颜色属性
p.color = "白色";
//访问p中的size尺寸大小属性
p.size = 5.5;
System.out.println("手机品牌为" + p.brand);
System.out.println("手机颜色为" + p.color);
System.out.println("手机尺寸大小为" + p.size);
}
}
自定义类的内存图演示:
上述代码中,通过类Phone创建出来的变量p,它相当于我们生活中的盒子,里面包含了它能够使用的属性。
通过 p.属性名 就可以对属性进行操作
与引用类型数组类似,引用类型的自定义类型的变量,直接变量时,结果为对象地址值,这里可以通过内存图简单解释。
ArrayList集合是程序中最常见的一种集合,它属于引用数据类型(类)。在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。
创建
导包:import java.util.ArrayList;
创建对象:与其他普通的引用数据类型创建方式完全相同,但是要指定容器中存储的数据类型:
ArrayList<要存储元素的数据类型> 变量名 = new ArrayList<要存储元素的数据类型>();
l 集合中存储的元素,只能为<>括号中指定的数据类型元素;
l “<要存储元素的数据类型>”中的数据类型必须是引用数据类型,不能是基本数据类型;
下面给出8种基本数据类型所对应的引用数据类型表示形式:
基本数据类型 |
对应的引用数据类型表示形式 |
byte |
Byte |
short |
Short |
Int |
Integer |
long |
Long |
float |
Float |
double |
Double |
char |
Character |
boolean |
Boolean |
下面是一些创建arraylist的实例:
存储String类型的元素
ArrayList<String> list = new ArrayList<String>();
存储int类型的数据
ArrayList<Integer> list = new ArrayList<Integer>();
存储Phone类型的数据
ArrayList<Phone> list = new ArrayList<Phone>();
方法
返回值类型 | 方法和描述 |
---|---|
boolean | add(E e)
将指定的元素添加到集合中
|
void | add(int index, E element)
在列表中指定的位置上插入指定的元素。
|
boolean | addAll(Collection<? extends E> c)
追加指定集合的所有元素到这个列表的末尾,按他们的指定集合的迭代器返回。
|
boolean | addAll(int index, Collection<? extends E> c)
将指定集合中的所有元素插入到该列表中,从指定位置开始。
|
void | clear()
从这个集合中移除所有的元素。
|
Object | clone()
返回该 ArrayList实例浅拷贝。
|
boolean | contains(Object o)
返回 true如果这个列表包含指定元素。
|
void | ensureCapacity(int minCapacity)
增加集合的容量,虽说arraylist本省就是可变的,但当你可以预先确定一定容量时,可以增加效率
|
E | get(int index)
返回此列表中指定元素的位置
|
int | indexOf(Object o)
返回此列表中指定元素的第一个出现的索引,或-如果此列表不包含元素,或- 1。
|
boolean | isEmpty()
返回 true如果此列表不包含元素。
|
Iterator<E> | iterator()
在这个列表中的元素上返回一个正确的顺序。
|
int | lastIndexOf(Object o)
返回此列表中指定元素的最后一个发生的索引,或-如果此列表不包含元素,或- 1。
|
ListIterator<E> | listIterator()
返回列表元素的列表迭代器(在适当的顺序)。
|
ListIterator<E> | listIterator(int index)
在列表中的元素上返回列表迭代器(在适当的顺序),从列表中的指定位置开始。
|
E | remove(int index)
移除此列表中指定位置的元素。
|
boolean | remove(Object o)
从该列表中移除指定元素的第一个发生,如果它是存在的。
|
boolean | removeAll(Collection<?> c)
从这个列表中移除包含在指定集合中的所有元素。
|
boolean | removeIf(Predicate<? super E> filter)
删除满足给定谓词的这个集合的所有元素。
|
protected void | removeRange(int fromIndex, int toIndex)
从列表中删除所有的元素的索引 fromIndex之间,包容性,和 toIndex,独家。
|
void | replaceAll(UnaryOperator<E> operator)
用将运算符应用到该元素的结果替换此列表中的每个元素。
|
boolean | retainAll(Collection<?> c)
仅保留包含在指定集合中的列表中的元素。
|
E | set(int index, E element)
用指定元素替换此列表中指定位置的元素。
|
int | size()
返回此列表中元素的数目。
|
void | sort(Comparator<? super E> c)
分类列表使用提供的 Comparator比较元素。
|
Spliterator<E> | spliterator()
创建一个后期绑定和快速失败 Spliterator超过此列表中的元素。
|
List<E> | subList(int fromIndex, int toIndex)
返回一个视图之间的指定 fromIndex,包容,和 toIndex这份名单的部分,独家。
|
Object[] | toArray()
返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一个到最后一个元素)。
|
<T> T[] | toArray(T[] a)
返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一到最后一个元素);返回数组的运行时类型是指定的数组的运行时类型。
|
void | trimToSize()
装饰这 ArrayList实例是列表的当前容量。
|
下面是一些实例:
import java.util.ArrayList;
public class ArrayListDemo01 {
public static void main(String[] args) {
// 创建ArrayList集合
ArrayList<String> list = new ArrayList<String>();
// 向集合中添加元素
list.add("stu1");
list.add("stu2");
list.add("stu3");
list.add("stu4");
// 获取集合中元素的个数
System.out.println("集合的长度:" + list.size());
// 取出并打印指定位置的元素
System.out.println("第1个元素是:" + list.get(0));
System.out.println("第2个元素是:" + list.get(1));
System.out.println("第3个元素是:" + list.get(2));
System.out.println("第4个元素是:" + list.get(3));
}
}
注意:ArrayList集合相当于是一个长度可变的数组,所以访问集合中的元素也是采用索引方式访问,第一个元素存储在索引0的位置,第二个元素存储在索引1的位置,依次类推
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
--结束END--
本文标题: Java ArrayList中存放引用数据类型的方式
本文链接: https://www.lsjlt.com/news/155569.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0