ArrayList
ArrayList类 是List接口的一个具体实现类
ArrayList 实现了长度可变的数组,在内存中分配连续的空间。便利元素和随机访问元素的效率比较高
ArrayList常用方法
LinkedList
LinkedList: 采用链表存储方式,插入,删除元素是效率比较高
public static void main(String[] args) {
///父类引用指向子类对象
//List names=new LinkedList();
LinkedList names=new LinkedList();
//添加
names.add("张珊");
names.add("王五");
//插入到数组下标为0的位置上 addFirst(参数)
names.addFirst("郭静");
//获取下标为0的数据get(index)
System.out.println(names.get(0));//输出郭静
System.out.println();
System.out.println("*******增强for循环遍历");
for (Object obj:names) {
System.out.print(obj+" ");
}
System.out.println("\n******迭代器遍历*********");
Iterator iterator=names.iterator();
while (iterator.hasNext()){
String name= (String) iterator.next();
System.out.print(name+" ");
}
}
关于类型多属性的集合增删改操作
先定义属性类
public class PenguinProperty<E,T,C> {
//企鹅的属性
private E name;
private T sex;
private C age;
//省略构造方法和get and set
//<E,T,C>指不管什么类型都可以,不清楚输入是什么就可以用泛型
}
在定义接口
public interface penjuininterface {
//添加内容方法
public void add(PenguinProperty penguinProperty)
//查看
public void size(PenguinProperty penguinProperty);
//删除部分元素
public boolean delete(String name);
}
PenguinProperty 类放三个属性
Penguin 是接口实现类
方法实现的功能
ArrayList集合添加内容add(Object o)
public class Penguin implements penjuininterface {
List penguin =new ArrayList();
//定义一个penguin 的集合
@Override
public void add(PenguinProperty penguinProperty) {
penguin.add(penguinProperty);
System.out.println("添加成功!");
}
测试方法
public static void main(String[] args) {
PenguinProperty property=new PenguinProperty();
//创建 PenguinProperty 对象
Penguin pen=new Penguin();
Scanner input=new Scanner(System.in);
System.out.print("请输入企鹅的名字");
property.setName(input.next());
System.out.print("请输入企鹅性别:");
property.setSex(input.next());
System.out.print("请输入如企鹅年龄:");
property.setAge(input.nextInt());
//把对象赋给add方法
pen.add(property);
}
ArrayList集合 for遍历和迭代器遍历
迭代器遍历
System.out.println("企鹅的名字是"+"\t\t"+"性别是:"+"\t\t"+"年龄是:");
Iterator iter=penguin.iterator();
while (iter.hasNext()){//判断是否存在可访问元素
//因为存数据是penguinProperty类型的但是add添加变成 了objct类型
用到需要强制转换成penguinProperty
PenguinProperty name= (PenguinProperty) iter.next();
System.out.println(name.getName()+"\t\t\t\t"
+name.getSex()+"\t\t"+name.getAge());
}
for遍历
System.out.println("企鹅的名字是"+"\t\t"+"性别是:"+"\t\t"+"年龄是:");
for (int i = 0; i <penguin.size() ; i++) {
penguinProperty = (PenguinProperty) penguin.get(i);
//因为存入的初始化数据是penguinProperty类型的但是add添加变成 了objct类型用到需要强制转换
System.out.println(penguinProperty.getName()
+"\t\t\t\t"+penguinProperty.getSex()+"\t\t"+penguinProperty.getAge());
}
删除操作
@Override
public boolean delete(String name) {
//删除指定的是用户输入的所以需要给定一个参数
boolean fala = false;
for (int i = 0; i <penguin.size() ; i++) {
//因为存入的初始化数据是penguinProperty类型的但是add添加变成 了objct类型用到需要强制转换
PenguinProperty p= (PenguinProperty) penguin.get(i);
if (name.equals(p.getName())){
penguin.remove(p);
fala=true;
break;
}
}
return fala;
}
测试类
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
Penguin pen=new Penguin();
PenguinProperty pro
perty=new PenguinProperty();
System.out.println("请输入要删除的名字");
if ( pen.delete(input.next())){//利用返回值查看是否删除成功
System.out.println("删除成功");
}else {
System.out.println("没有这个人删除失败!");
} }