package collectiondemo;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
/*集合之list
|--List 接口 有序的,可重复,可根据角标操作元素
|--ArrayList 底层数据结构是数组,查询速度快,增删稍慢,线程不同步的
|--LinkedList 底层数据结构是链表,增删速度快,查询稍慢,线程不同步的
|--Vector 底层数据结构是数组,增删查都稍慢,线程同步的,jdk1.0出现的,那时候还没有集合框架,后来被ArrayList取代 */
public class CopllectionDemo1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> al=new ArrayList<String>();
al.add("1");
al.add("2");
al.add("3");
al.add("4");
//iteratorMthod(al);
//foreachMethod(al);
//method_5( al);
//method_3(al);
method_2(al);
}
public static void method_2(ArrayList<String> al )
{
ListIterator<String> li=al.listIterator();
while(li.hasNext())
{
String str=li.next();
if(str.equals("4"))
{
//通过 ListIterator 删除元素
// li.remove();
//t通过ListIterator 添加元素
//li.add("1231231");
//通过ListIterator 修改元素
li.set("12");
}
}
foreachMethod(al);
}
public static void method_3(List<String> a)
{
// 返回指定的的数据
List<String> sub=a.subList(2, 4);
foreachMethod(sub);
}
/*ArrayList 的一些方法*/
public static <Q> void method_4(ArrayList<Q> a)
{
ArrayList<String> newal=new ArrayList<String>();
newal.add("new");
newal.add("new");
newal.add("new");
//添加一个元素
// a.add((Q) "s");
//指定位置添加元素
// a.add(1, (Q) "123");
// 添加一个集合
// a.addAll((Collection<? extends Q>) newal); //上限
//指定位置添加一个集合的元素
//a.addAll(4, (Collection<? extends Q>) newal);
//清空集合
//a.clear();
// 包括元素
//System.out.println(a.contains("1"));
// 将集合转换成数组
Object[] obj=a.toArray();
String [] str=new String[obj.length];
for(int i=0;i<obj.length;i++)
{
//str[i]=obj[i].toString();
str[i]=obj[i]+"";
System.out.println(str[i]);
}
// for(Object o:obj)
// {
// System.out.println(o);
// }
// foreachMethod(a);
}
//ArrayList的 增 删 该 查
@SuppressWarnings("unchecked")
public static <Q> void method_5(List<Q> l)
{
//添加
l.add((Q) "q");
// 删除
l.remove(2);
//修改
l.set(2, (Q) "new");
//查
///Q q=l.get(2);
//sop(q);
foreachMethod(l);
}
//节省空间的遍历方法 for结束的时候里面的数据就成为垃圾了
public static <Q> void foreachMethod(List<Q> l)
{
for(Iterator<Q> it=l.iterator();it.hasNext();)
{
Q str=it.next();
sop(str);
}
}
//迭代遍历的方法
public static <Q> void iteratorMthod(ArrayList<Q> al)
{
Iterator<Q> it=al.iterator();
while(it.hasNext())
{
Q str=it.next();
sop(str);
}
}
// 输出数据的方法
public static void sop(Object obj)
{
System.out.println(obj);
}
}
java集合之ArrayList
最新推荐文章于 2023-08-03 20:43:23 发布