collection单列集合
import java.util.*;
public class Su {
public static void main(String[] args) {
// TODO Auto-generated method stub
//==============Collection单列集合==========
//有两种继承类接口 List 和 Set
//=============List接口==============
//--------ArrayList集合--------
//ArrayList是List接口的一个实现类(List是无法实现的),其内部封装了一个长度可变的数组对象。
System.out.println("-----------ArrayList集合------------");
ArrayList list=new ArrayList();
list.add("stu1");
list.add("stu2");
list.add("stu3");
list.add("stu4");//插入操作
System.out.println("集合的长度是:"+list.size());
System.out.println("第二个元素是:"+list.get(1));//查找元素
list.remove(3);//删除操作
System.out.println("删除后集合的长度是:"+list.size());
list.set(1,"stu_change");//更改操作
System.out.println("更改之后的集合是:");
for(int i=0;i<list.size();i++)
{
System.out.print(list.get(i)+" ");
}
list.add("stu4");
list.add("stu3");
System.out.println("stu3在集合中第一次出现的位置是:"+list.indexOf("stu3"));
System.out.println("stu3在集合中最后一次出现的位置是:"+list.lastIndexOf("stu3"));
System.out.println("集合中0-2(不包括2)的元素:"+list.subList(0,2));
//ArrayList集合的底层是使用一个数组来保存元素,在增加或者删除指定位置元素时,会导致创建新的数组,效率低,不适合做大量的删增操作
//用其查找元素非常方便
//---------LinkedList集合-----------
System.out.println("----------------LinkedList集合----------");
LinkedList link=new LinkedList();
link.add("p1");
link.add("p2");
link.add("p3");
link.add("p4");
System.out.println(link.toString());//取出并打印该集合中的所有元素
link.add(3,"Student");
link.addFirst("First_P");//插入表头
link.addLast("Last_P");//插入表尾
System.out.println(link);
System.out.println(link.getFirst());//获取列表第一个元素
System.out.println(link.getLast());//获取列表最后一个元素
link.removeFirst();
link.removeLast();
System.out.println(link);//输出整个表
//------------Iterator接口------- (正向迭代)
//用于遍历集合中的所有元素;该迭代器提供了hasNext()和next()方法
System.out.println("-------------Iterator接口(正向迭代)---------");
Iterator it=list.iterator();
while(it.hasNext()) {
Object obj=it.next();//调用该方法将元素取出
System.out.println(obj);
//System.out.println(it.next());
//元素都可以当做Object类
}
//foreach循环 遍历ArrayList中的元素
//不可修改表中的元素
System.out.println("------foreach循环---------");
for(Object obj:list) {
System.out.println(obj);
}
//------------ListIterator接口--------
System.out.println("-------ListIterator接口(反向迭代)---------");
ListIterator it1=link.listIterator(list.size());
while(it1.hasPrevious()) {
Object obj=it1.previous();
System.out.print(obj+" ");
}
System.out.println();
//-----------Vector集合----------------
//是List接口的一个实现类 与ArrayList用法完全相同(vector是线程安全的而后者是现成不安全的)
System.out.println("------Vector集合--------");
Vector v=new Vector();
v.add("Jack");
v.add("Rose");
v.add("Tome");
Enumeration en=v.elements();//通过该对象遍历该集合中的元素
while(en.hasMoreElements()) {
Object obj=en.nextElement();
System.out.println(obj);
}
//**********************************************************
//=============set接口================
//--------------HashSet集合------------------
//该集合所存储的元素是不可以重复的,而且元素都是无序的。
System.out.println("--------HashSet集合--------");
HashSet set=new HashSet();
set.add("S1");
set.add("S2");
set.add("S3");
set.add("S4");
Iterator it2=set.iterator();
while(it.hasNext()) {
Object obj=it2.next();
System.out.println(obj);
}
//重写equals()和hashCode()------复杂类型的排序
//----------TreeSet集合-------------
//采用平衡的排序二叉树来存储元素 该集合中没有重复的元素,并且可以对元素进行排序(从小到大)
System.out.println("---------TreeSet集合-------");
TreeSet ts=new TreeSet();
ts.add(5);
ts.add(4);
ts.add(7);
ts.add(4);
ts.add(1);
ts.add(2);
Iterator it3=ts.iterator();
while(it3.hasNext()) {
System.out.println(it3.next());
}
//复杂类型的排序------
}
}
Map 类
import java.util.*;
public class Su {
public static void main(String[] args) {
// TODO Auto-generated method stub
//==============Map接口==========
//双列结合,每个元素包含一个key对象和value对象(两者存在映射关系)
//--------------HashMap集合------------
Map map=new HashMap();
map.put("1","Jack");//存储键和值
map.put("2","Rose");
map.put("3","Lucy");
System.out.println("1:"+map.get("1"));//根据键获取值
System.out.println("2:"+map.get("2"));
System.out.println("3:"+map.get("3"));
map.put("3","Mary");//key相等 值覆盖
//两种遍历方式
System.out.println("-------第一种遍历方式(先遍历所有的key)--------");
Set keySet=map.keySet();//获取键的集合
Iterator it=keySet.iterator();//迭代键的集合
while(it.hasNext()) {
Object key=it.next();
Object value=map.get(key);//获取每个键对应的值
System.out.println(key+":"+value);
}
System.out.println("-------第二种遍历方式(先遍历所有的key)--------");
Set entrySet=map.entrySet();
Iterator it1=entrySet.iterator();
while(it.hasNext()){
Map.Entry entry=(Map.Entry)(it.next());//获取集合中键值对映射关系
Object key=entry.getKey();//获取Entry中的键
Object value=entry.getValue();
System.out.println(key+":"+value);
}
}
}
collection工具类和Arrays 工具类
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
public class SU {
public static void main(String[] args){
//============collection 工具类=========================
//该类中提供了大量的方法用于对集合中的元素进行排序、查找、和修改等
//------------排序操作----------------
System.out.println("-------排序操作---------");
ArrayList list=new ArrayList();
Collections.addAll(list,"C","Z","B","K");
System.out.println("排序前:"+list);
Collections.reverse(list);
System.out.println("反转后:"+list);
Collections.sort(list);
System.out.println("排序后:"+list);
Collections.shuffle(list);
System.out.println("随机排序后:"+list);
Collections.swap(list, 2, 3);
Collections.sort(list);
System.out.println("第2和第3位置交换:"+list);
//-----------查找替换操作----------------
System.out.println("-------查找替换操作----------");
ArrayList list1=new ArrayList();
Collections.addAll(list1,-3,-2,9,5,8);//注意这里面不能是小数。刚手误把逗号输入成了点
System.out.println("集合中元素:"+list1);
System.out.println("最大元素:"+Collections.max(list1));
System.out.println("最小元素:"+Collections.min(list1));
System.out.println("查找第2号元素:"+Collections.binarySearch(list1,2));
Collections.replaceAll(list1,8,88);
System.out.println("替换后的集合:"+list);
//*************************************************
//----------------Araays工具类---------------------
//utl包中专门提供了用于操作数组的工具类
System.out.println("-------Array工具类---------");
int[] arr={9,8,3,5,2};
System.out.println("排序前:");
printArray(arr);
Arrays.sort(arr);
System.out.println("排序后:");
printArray(arr);
int dex=Arrays.binarySearch(arr, 3);
System.out.println("数组排序后元素3的索引(下标)是:"+dex);
System.out.println("拷贝数组元素");
int[] cop=Arrays.copyOfRange(arr,1, 7);
//不包括7,即大于等于1小于7
for(int i=0;i<cop.length;i++)
{
System.out.print(cop[i]+" ");
}
System.out.println("");
System.out.println("用一个值替换数组中所有元素的值");
int[] arr1={1,2,3,4};
Arrays.fill(arr1,8);
for(int i=0;i<arr1.length;i++)
{
System.out.println(i+":"+arr1[i]);
}
System.out.println("把数组转化为字符串");
int[] arr2={9,8,2,3,7};
String arrString=Arrays.toString(arr2);
System.out.println(arrString);
//字符串可以直接输出并且有格式
}
public static void printArray(int[] arr){
System.out.print("[");
for(int i=0;i<arr.length;i++)
{
if(i!=arr.length-1){
System.out.print(arr[i]+",");
}
else
System.out.println(arr[i]+"]");
}
}
}