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());
        
        ArrayList list2=new ArrayList();
        list2.add(2);list2.add(-1);list2.add(100);list2.add(500);
        Collections.sort(list2); //用Collections类实现list的排序
        Iterator ii=list2.iterator();
        while(ii.hasNext())
        	System.out.println(ii.next());
    }
}


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()+" ");
    }
}

四.Map常用操作

HashMap:插入的类型可以不同,常用函数:添加元素put(key,value),remove(key),clear(),获得映射的内容get(key),

containsKey(key)是否存在当前key,containsValue(value)是否存在当前映射值,isEmpty(),size(),keySet()返回集合。

TreeMap:插入的类型必须相同,因为会自动排序,函数和上面相同。


HashMap:

 

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));
        HashMap m=new HashMap();
        m.put("张三",10);
        m.put("李四",11);
        m.put("王五",12);
        if(m.containsKey("李四"))
        	System.out.println("找到李四");
        System.out.println(m.get("李四"));
        if(m.containsValue(m.get("李四")))
        	System.out.println("存在值"+m.get("李四"));
        if(!m.isEmpty()) System.out.println("非空");
        Iterator it=m.keySet().iterator();
        while(it.hasNext())
        {
        	String key=(String)it.next();
        	System.out.println(key+" "+m.get(key));
        }
    }
}
TreeMap和HashMap差不多,代码就不写了。


五.Collections类常用操作

主要是用list集合的操作,对list集合操作的主要函数要:

int binarySearch(List list,Object key);

void copy(List one,List two);

void fill(List list,Object obj);

void sort(List list);

void reverse(List list);//实现list数组的翻转

vois swap(List list,int i,int j);


你可能感兴趣的:(java集合类编程重点)