首页 > 代码库 > java集合类编程重点

java集合类编程重点

一.数组常用操作

import java.io.*;
import java.math.*;
import java.util.*;
public class Main 
{
	private static int []a=new int[20];
	public static void print()
	{
		for(int i=0;i<20;i++)
        	System.out.print(a[i]+" ");
        System.out.println("");
	}
    public static void main(String[] args) 
    {
        Scanner cin=new Scanner (new BufferedInputStream(System.in));
        Arrays.fill(a,1);//给a数组赋值为1
        print();
        for(int i=0;i<20;i++) a[i]=i%10;
        print();
        Arrays.sort(a);//升序
        print();
        //没有降序函数,可以自定义排序方式
        //但是既然已经升序,从后往前看就是降序了
        int index=Arrays.binarySearch(a,4);//查找值为4的下标
        System.out.println(index);
    }
}
二.set集合

HashSet:没有重复的,添加进去的可以是不同类型的。

TreeSet:没有重复,添加进去的必须是同种类型的,因为会自动排序。


HashSet:

import java.io.*;
import java.math.*;
import java.util.*;
public class Main 
{
    public static void main(String[] args) 
    {
        Scanner cin=new Scanner (new BufferedInputStream(System.in));
        HashSet s=new HashSet();
        s.add(2);s.add("liwei");s.add(1.23);s.add(true);//添加元素
        System.out.println(s.size());//set的长度
        if(s.contains("liwei")) //查找某个是否存在
        	System.out.println("找到");
        s.remove("liwei");
        Iterator i=s.iterator();
        while(i.hasNext()) //迭代器进行遍历
        	System.out.println(i.next());
    }
}
TreeSet:

import java.io.*;
import java.math.*;
import java.util.*;
public class Main 
{
    public static void main(String[] args) 
    {
        Scanner cin=new Scanner (new BufferedInputStream(System.in));
        TreeSet s=new TreeSet();
        s.add(12);s.add(5);s.add(100);s.add(1);//添加同类型元素
        System.out.println(s.size());//treeSet的长度
        if(s.contains(5)) //查找某个是否存在
        	System.out.println("找到5");
        s.remove(5);
        Iterator i=s.iterator();
        while(i.hasNext()) //迭代器进行遍历
        	System.out.println(i.next());
    }
}

三.List(列表)常用操作
ArrayList:代替C++中的vector实现动态数组,常用方法有:add(),get(int index),remove(int index),

int indexOf(ArrayList a),int lastIndexOf(ArrayList a)。

LinkedList:代替C++中的stack和queue,常用方法:ArrayList的方法LinkedList都可以用,多加的方法有addFirst(),

addLast(),removeFirst(),removeLast(),以便实现stackt和queue的功能。


ArrayList:

import java.io.*;
import java.math.*;
import java.util.*;
public class Main 
{
    public static void main(String[] args) 
    {
        Scanner cin=new Scanner (new BufferedInputStream(System.in));
        ArrayList list=new ArrayList();
        list.add(2);list.add("liwei");list.add(1.25);list.add(true);
        Iterator i=list.iterator();
        while(i.hasNext())
        	System.out.println(i.next());
        //int len=list.size();
        //System.out.println("下标查找");
        //for(int j=0;j<len;j++) 这个方法书上说的,但是编译的时候竟然提示参数为迭代器了
        //	System.out.println(list.get(i));
    }
}
LinkedList:

import java.io.*;
import java.math.*;
import java.util.*;
public class Main 
{
    public static void main(String[] args) 
    {
        Scanner cin=new Scanner (new BufferedInputStream(System.in));
        LinkedList list=new LinkedList();
        list.add(2);list.add("liwei");list.add(1.25);list.add(true);
        list.addFirst("abcd");
        list.addLast(123);
        Iterator i=list.iterator();
        while(i.hasNext())
        	System.out.print(i.next()+" ");
        System.out.println("");
        System.out.println("第一个元素"+list.getFirst());//这个方法以便实现stack和queue操作
        System.out.println("最后一个元素"+list.getLast());
        list.removeFirst();
        list.removeLast();
        i=list.iterator();
        while(i.hasNext())
        	System.out.print(i.next()+" ");
    }
}
或者如下面定义LinkedList的类型(其他类似):
public class Main 
{
    public static void main(String[] args) 
    {
        Scanner cin=new Scanner (new BufferedInputStream(System.in));
        LinkedList<Integer> list=new LinkedList<Integer>();
        list.add(2);list.add(5);list.add(1);list.add(-5);
        list.addFirst(100);
        list.addLast(200);
        Iterator i=list.iterator();
        while(i.hasNext())
        	System.out.print(i.next()+" ");
        System.out.println("");
        System.out.println("第一个元素"+list.getFirst());//这个方法以便实现stack和queue操作
        System.out.println("最后一个元素"+list.getLast());
        list.removeFirst();
        list.removeLast();
        i=list.iterator();
        while(i.hasNext())
        	System.out.print(i.next()+" ");
    }
}