集合框架 ArrayList(1)
1.数组的局限性
如果要存放多个对象,可以使用数组,但是数组有局限性
比如 声明长度是10的数组
不用的数组就浪费了
超过10的个数,又放不下
2 ArrayList与数组的区别
ArrayList容器的容量会随着对象的增加,自动增长,只需往容器中不断添加元素就可以了,不用担心会出现数组的边界问题。
package ArrayLists;
import java.util.ArrayList;
public class code01 {
public static void main(String args[]){
ArrayList number=new ArrayList();
number.add(1);
System.out.println(number.size());
number.add(2);
System.out.println(number.size());
System.out.println(number);
}
}
运行结果
3. ArrayList的常见方法
3.1 add()
add 有两种用法
第一种是直接add对象,把对象加在最后面
第二种是在指定位置加对象
package ArrayLists;
import java.util.ArrayList;
public class code02 {
public static void main(String args[]){
ArrayList number=new ArrayList();//类似python的列表 可以加不同类型的数据
//第一种方法 add(对象)
for(int i=1;i<=5;i++)
number.add(i);
System.out.println(number);
//第二种方法 add(位置,对象)
number.add(2,"special number");
System.out.println(number);
}
}
运行结果
3.2 contains()
contains()判断容器中是否存在对象
package ArrayLists;
import java.util.ArrayList;
public class code02 {
public static void main(String args[]){
ArrayList number=new ArrayList();//类似python的列表 可以加不同类型的数据
//第一种方法 add(对象)
for(int i=1;i<=5;i++)
number.add(i);
System.out.println(number);
//第二种方法 add(位置,对象)
number.add(2,"special number");
System.out.println(number);
//ArrayList类型的数据.contains(某个对象)--返回true/false
System.out.println(number.contains(1));//结果为true
}
}
3.3 get()
获取指定位置的对象
通过get获取指定位置的对象,如果输入的下标越界,一样会报错
package ArrayLists;
import java.util.ArrayList;
public class code02 {
public static void main(String args[]){
ArrayList number=new ArrayList();//类似python的列表 可以加不同类型的数据
//第一种方法 add(对象)
for(int i=1;i<=5;i++)
number.add(i);
System.out.println(number);
//第二种方法 add(位置,对象)
number.add(2,"special number");
System.out.println(number);
//ArrayList类型的数据.contains(某个对象)--返回true/false
System.out.println(number.contains(1));
//get()--获得指定位置的对象
System.out.println(number.get(5));
System.out.println(number.get(6));//越界 报错
}
}
3.4 remove()
remove(位置)–根据位置删除对象
remove(对象)–根据对象删除对象
package ArrayLists;
import java.util.ArrayList;
public class code02 {
public static void main(String args[]) {
ArrayList number = new ArrayList();//类似python的列表 可以加不同类型的数据
//第一种方法 add(对象)
for (int i = 1; i <= 5; i++)
number.add(i);
System.out.println(number);
//第二种方法 add(位置,对象)
number.add(2, "special number");
System.out.println(number);
//ArrayList类型的数据.contains(某个对象)--返回true/false
System.out.println(number.contains(1));
//get()--获得指定位置的对象
System.out.println(number.get(5));
// System.out.println(number.get(6));//越界 报错
//remove()--删除对象
number.remove(0); //remove(下标)
System.out.println(number);
number.remove(Integer.valueOf("2")); //remove(对象) Integer.valueOf("字符串")--字符串转数字
System.out.println(number);
}
}
3.5 set()
set用于替换指定位置的元素
package ArrayLists;
import java.util.ArrayList;
public class code02 {
public static void main(String args[]) {
ArrayList number = new ArrayList();//类似python的列表 可以加不同类型的数据
//第一种方法 add(对象)
for (int i = 1; i <= 5; i++)
number.add(i);
System.out.println(number);
//第二种方法 add(位置,对象)
number.add(2, "special number");
System.out.println(number);
//ArrayList类型的数据.contains(某个对象)--返回true/false
System.out.println(number.contains(1));
//get()--获得指定位置的对象
System.out.println(number.get(5));
// System.out.println(number.get(6));//越界 报错
//remove()--删除对象
number.remove(0); //remove(下标)
System.out.println(number);
number.remove(Integer.valueOf("2")); //remove(对象) Integer.valueOf("字符串")--字符串转数字
System.out.println(number);
number.set(0,"SPECIAL NUMBER");//number.set(位置,对象)
System.out.println(number);
}
}
3.6 toArray() 转数组
package ArrayLists;
import java.util.ArrayList;
public class code02 {
public static void main(String args[]) {
ArrayList number = new ArrayList();//类似python的列表 可以加不同类型的数据
//第一种方法 add(对象)
for (int i = 1; i <= 5; i++)
number.add(i);
System.out.println(number);
//第二种方法 add(位置,对象)
number.add(2, "special number");
System.out.println(number);
//ArrayList类型的数据.contains(某个对象)--返回true/false
System.out.println(number.contains(1));
//get()--获得指定位置的对象
System.out.println(number.get(5));
// System.out.println(number.get(6));//越界 报错
//remove()--删除对象
number.remove(0); //remove(下标)
System.out.println(number);
number.remove(Integer.valueOf("2")); //remove(对象) Integer.valueOf("字符串")--字符串转数字
System.out.println(number);
number.set(0, "SPECIAL NUMBER");//number.set(位置,对象)
System.out.println(number);
number.remove(0);
//ArrayList转数组
Integer integer[] = (Integer[]) number.toArray(new Integer[]{});
System.out.println(integer);
}
}
3.7 把一个容器的对象加到另一个容器
package ArrayLists;
import java.util.ArrayList;
public class code02 {
public static void main(String args[]) {
ArrayList number = new ArrayList();//类似python的列表 可以加不同类型的数据
//第一种方法 add(对象)
for (int i = 1; i <= 5; i++)
number.add(i);
System.out.println(number);
ArrayList number1 = new ArrayList();
for(int i=6;i<=10;i++)
number1.add(i);
//把number1都加到number
number.addAll(number1);
System.out.println(number);
}
}