集合--List

集合List 下面 有 ArrayList LinkedList Vector
ArrayList:基于数组结构的一段连续空间 ,添加,删除效率低,查询效率高.
1.允许存放重复的元素
2.也可以存放null值
3.ArrayList实例都有一个默认的容量 (10)
4.ArrayList集合的长度自动增长(增长是当前长度的一半)
5.ArrayList是线程不安全的
6.ArrayList数据是在尾部增加,不能向前增加

LinkedList:基于链表结构 ,以及双端队列结构(两端点的输出)
1.LinkedList类可以在集合前后面增加元素,灵活性比较强
2.线程不安全
3.LinkedList除了和ArrayList的常见的方法,还提供了一些自己的方法.
例如:
addFirst(E e) 将指定元素插入此列表的开头
addLast(E e) 将指定元素插入此列表的结尾
E getFirst() 返回此列表的第一个元素
E getLast() 返回此列表的最后一个元素

下面贴点代码:
/**
*

  • @author dch

*/
//ArrayList
public class TestArrayList {

public static void main(String[] args) {
	 
	List  list = new ArrayList();
	System.out.println(list);//默认10个空间
	
	//添加元素,自动将这些元素转成了Object
	list.add("hello");
	list.add("123");
	list.add("你好");
	
	//删除某个下标的元素
	//list.remove(0);
	//System.out.println(list);
	
	//删除某个元素
	//list.remove("123");
	//System.out.println(list);
	
	//添加  默认添加到末尾
	list.add(456);//这里说明是宽进;我们一般要严进宽出
	System.out.println(list.get(2));
	System.out.println(list);
	
	//将元素添加到指定的位置
	list.add(1, "男生");
	System.out.println(list);
	
	//遍历所有元素
	list.size();//集合的长度
	for (int i = 0; i < list.size(); i++) {
		System.out.print(list.get(i)+",");
	}
	
	System.out.println();
	//数组 变成 ArrayList
	String [] array = {"我","是","男生"};
	
	//数组里面的一个方法
	List list2 = Arrays.asList(array);
	/*for (int i = 0; i < array.length; i++) {
		System.out.print(list2.get(i)+",");
	}*/
	//这样做了list2才能调用list里面的方法,
	//只不过这里用list3代替了list2
	List list3 = new ArrayList(list2);
	System.out.println();
	//addAll  将集合list2里面的元素全部加到list集合里面
	//默认加在后面
	//list.addAll(list2)
	//System.out.println(list);
	System.out.println(list3);
	
	//移除列表里面的元素
	//list3.clear();
	//System.out.println(list3);
	
	//index 查找某元素的下标
	//System.out.println(list3.indexOf("男生"));
	
	//查找集合里面有没有某元素,有 true
	System.out.println(list.contains("中国"));
	
	
	//集合转成数组  对象数组
	//System.out.println(list.toArray());
}

}
接着操作一下对象:
/**
*

  • @author dch

*/
//定义一个学生类
public class Student {
//姓名
private String name;
//年龄
private int age;

//有参构造器
public Student(String name, int age) {
	super();
	this.name = name;
	this.age = age;
}

//设置set/get方法
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public int getAge() {
	return age;
}
public void setAge(int age) {
	this.age = age;
}

}
/**
*

  • @author dch

*/
//ArrayList
public class TestArrayList2 {

public static void main(String[] args) {
	//先定义arraylist来存储对象
	List list = new ArrayList();
	
	//添加对象数据
	list.add(new Student("杜", 22));
	list.add(new Student("李", 21));
	list.add(new Student("赵", 23));
	list.add(new Student("王", 25));
	list.add(new Student("周", 26));
	list.add("钱");
	
	//获取数据,通过for循环
	for (int i = 0; i < list.size(); i++) {
		Object obj = list.get(i);
		if(obj  instanceof Student){
			Student stu = (Student)obj;//向下转型
			System.out.println(stu.getName()+","+stu.getAge());
	}else{
		System.out.println(obj);
	}
	}
}

}

/**
*

  • @author dch

*/
//LinkedList
public class LinkedListTest {

	public static void main(String[] args) {
		LinkedList list = new LinkedList();
		list.addFirst("hello");
		list.add("hi");
		list.addFirst("ok");
		
		for(int i = 0 ;i<list.size();i++){
			System.out.println(list.get(i));
		}
		list.addLast("dd");
		
		Object ele = list.peek();//检索但不删除此列表的头部(第一个元素)
		System.out.println(ele);	
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值