java集合学习笔记--list

1.为什么需要集合?
因为数组大小必须固定,无法修改,存储的数据类型必须是同一种类型。而集合可以解决这两个问题,集合中的元素个数是可以变的,集合中可以存储不同类型的数据。

2.一维集合
存放数据是一维的,类似于变长的一维数组。该系列最顶级是Collection 接口,在该接口下,有三个子系类:List  Queue  和 Set.
使用最多的是List系列和Set系类的集合.
使用List集合
List集合特点:
1.实现了java.util.List接口
2.集合中元素有顺序
3.允许重复元素
4.每个元素可以通过下标访问。下标从0开始

List集合中最有代表性的是:
1.java.util.ArrayList
2.java.util.LinkedList
3.jvava.util.Vector
这三个类的使用基本相同。区别如下:
ArrayList不是线程安全的,Vector实现了线程安全
使用情况:
一般情况下,如果要支持随机访问,而不必在除尾部的任何位置插入或者除去元素,ArrayList较好.
如果要频繁的从集合的中间位置添加和除去元素,LinkedList实现更好
如果要实现线程安全,Vector更好

ArrayList的用法:
1.构造一个空的ArrayList对象
public ArrayList()
2.在末尾添加一个对象
public void add(Object obj)
3.判断是否包含某个对象
public boolean contains(Object elem)
4.将ArrayList转为对象数组
public Object[] toArray()
5.得到某个位置的对象
public Ojbect indexOf(Object elem)
6.返回某个对象的位置
public int indexOf(Object elem)
7.在某位置插入一个对象,后面的对象后移
public add(int index,Object obj)
8.判断集合是否为空
public boolean isEmpty()
9.清空集合
public void clear()
10. 移除某个对象
public boolean remove(Object obj)
11.移除某个位置的对象
public boolean remove(int index)
12.修改某个位置上的对象
public void set(int index,Object obj)
13.返回集合的大小
public int size()

代码例子:

import java.util.ArrayList;
public class ListTest
{
 public static void main(String[] args)
 {
  ArrayList al = new ArrayList();
  //添加元素
  al.add("中国");
  al.add("a");
  al.add("b");
  al.add("c");
  al.add("d");
  //遍历
  int size = al.size();
  for(int i = 0;i<size;i++)
  {
   String str = (String)al.get(i);
   System.out.println("ArrayList["+i+"] = "+str);
   
  }
 }
}
编译出现提示:
使用未经检查或不安全操作;要了解详细信息,请使用-Xlink:unchecked重新编译
改为:
import java.util.ArrayList;
public class ListTest
{
 public static void main(String[] args)
 {
  ArrayList<String> al = new ArrayList<String>();
  //添加元素
  al.add("中国");
  al.add("a");
  al.add("b");
  al.add("c");
  al.add("d");
  //遍历
  int size = al.size();
  for(int i = 0;i<size;i++)
  {
   String str = (String)al.get(i);
   System.out.println("ArrayList["+i+"] = "+str);
   
  }
 }
}
错误为:需要声明集合元素的类型

删除元素
import java.util.ArrayList;
public class ListTest
{
 public static void main(String[] args)
 {
  ArrayList<String> al = new ArrayList<String>();
  //添加元素
  al.add("中国");
  al.add("a");
  al.add("b");
  al.add("c");
  al.add("d");
  //遍历
  int size = al.size();
  for(int i = 0;i<size;i++)
  {
   String str = (String)al.get(i);
   System.out.println("ArrayList["+i+"] = "+str);
   
  }
  //删除元素
  al.remove(0);
  System.out.println("删除元素后:");
  for(int i = 0;i<al.size();i++)
  {
   String str = (String)al.get(i);
   System.out.println("ArrayList["+i+"] = "+str);
   
  }
 }
}
使用LinkedList实现:

import java.util.LinkedList;
public class ListTest
{
 public static void main(String[] args)
 {
  LinkedList<String> al = new LinkedList<String>();
  //添加元素
  al.add("中国");
  al.add("a");
  al.add("b");
  al.add("c");
  al.add("d");
  //遍历
  int size = al.size();
  for(int i = 0;i<size;i++)
  {
   String str = (String)al.get(i);
   System.out.println("ArrayList["+i+"] = "+str);
   
  }
  //删除元素
  al.remove(0);
  System.out.println("删除元素后:");
  for(int i = 0;i<al.size();i++)
  {
   String str = (String)al.get(i);
   System.out.println("ArrayList["+i+"] = "+str);
   
  }
 }
}

使用Vector实现:

import java.util.Vector;
public class ListTest
{
 public static void main(String[] args)
 {
  Vector<String> al = new Vector<String>();
  //添加元素
  al.add("中国");
  al.add("a");
  al.add("b");
  al.add("c");
  al.add("d");
  //遍历
  int size = al.size();
  for(int i = 0;i<size;i++)
  {
   String str = (String)al.get(i);
   System.out.println("ArrayList["+i+"] = "+str);
   
  }
  //删除元素
  al.remove(0);
  System.out.println("删除元素后:");
  for(int i = 0;i<al.size();i++)
  {
   String str = (String)al.get(i);
   System.out.println("ArrayList["+i+"] = "+str);
   
  }
 }
}

 

 


 

你可能感兴趣的:(java集合学习笔记--list)