集合
- 用于存储对象;
- 长度可变(区别于数组,长度固定)
ArrayList
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
public class ArrayListTest{
public static void main(String args[]){
List<String> nameList = new ArrayList<String>(); //接口回调
//ArrayList<String> nameList = new ArrayList<String>();
nameList.add("张三");
nameList.add("李四"); //add方法向列表中添加元素
nameList.add("王二");
nameList.add("王二");
System.out.println(nameList);
System.out.println(nameList.size()); //size方法返回列表元素个数
System.out.println(nameList.indexOf("王二")); //返回该元素在列表中第一次出现的位置
System.out.println(nameList.lastIndexOf("1"));//返回该元素在列表中最后一次出现的位置,没有该元素返回-1
String e = nameList.get(0); //返回指定位置的元素值
System.out.println(e);
nameList.set(0,"路飞");
System.out.println(nameList.get(0)); //用该元素替换指定位置的元素
System.out.println(nameList.contains("路飞")); //判断列表中是否存在该元素存在返回true
System.out.println(nameList.isEmpty()); // 判断列表是否为空,若为空返回true
System.out.println("------列表的遍历------");
//1.for循环
System.out.println("-----1.普通for循环-----");
for(int i=0;i<nameList.size();i++){
System.out.println(nameList.get(i));
}
//2.foreach循环
System.out.println("------2.foreach循环遍历------");
for (String str:nameList) {
System.out.println(str);
}
//3.迭代器(集合遍历通用方法)
System.out.println("----迭代器-----");
Iterator<String> it = nameList.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
System.out.println("---------------");
/*List<String> nameListTwo = new ArrayList<String>();
nameListTwo.add("路飞");
nameListTwo.add("李四");
System.out.println(nameList.remove(nameListTwo));*/
System.out.println(nameList.remove("路飞")); //判断该列表中是否有该指定元素,如果有就删除该元素,并返回true
System.out.println(nameList);
System.out.println(nameList.remove(0));//删除指定位置的元素并返回该元素的值
System.out.println(nameList);
//nameList.clear(); //清除该列表中的所有元素
System.out.println(nameList);
System.out.println("------------------");
/*Object[] str = nameList.toArray();
for (Object i:str
) {
System.out.println(i);
}*/
String str[] = nameList.toArray(new String[0]);
for (int i=0;i<nameList.size();i++){
System.out.println(nameList.get(i));
}
}
}
LinkedList
import java.util.Iterator;
import java.util.List;
import java.util.LinkedList;
public class LinkedListTest {
public static void main(String args[]){
//List<Integer> interger = new LinkedList<Integer>();
LinkedList<Integer> interger =new LinkedList<Integer>();
interger.add(1);
interger.add(2);
interger.add(3);
interger.add(3);
System.out.println(interger);
System.out.println(interger.size());
System.out.println(interger.get(0));
System.out.println(interger.isEmpty());
System.out.println(interger.contains(1));
System.out.println(interger.indexOf(3));
System.out.println(interger.lastIndexOf(3));
System.out.println(interger.remove(3)); //此时3指的是位置参数而不是元素的值
System.out.println(interger);
/*Object i[] = interger.toArray();
for (Object t:i
) {
System.out.println(t);
}*/
Integer i[] = interger.toArray(new Integer[0]);
for(int t=0;t<interger.size();t++){
System.out.println(interger.get(t));
}
//ArrayList方法LinkedList都同样适用
//LinkedList特有的方法
System.out.println("--------------------");
System.out.println(interger.getFirst()); // 返回第一个元素
System.out.println(interger.getLast()); //返回最后一个元素
interger.removeFirst(); //删除第一个元素
System.out.println(interger);
interger.removeLast(); //删除最后一个元素
System.out.println(interger);
//遍历
//1.for
for (int t=0;t<interger.size();t++){
System.out.println(interger.get(t));
}
//2.foreach
for (Integer t:interger
) {
System.out.println(t);
}
//3.迭代器
Iterator<Integer> it = interger.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
HashSet
非顺序存储,元素唯一
import java.util.HashSet;
import java.util.Iterator;
public class HashSetTest {
public static void main(String aegs[]){
HashSet<String> set = new HashSet<String>();
set.add("路飞");
set.add("索隆");
set.add("山治");
set.add("路飞");
System.out.println(set); //非顺序存储
System.out.println(set.size());//元素唯一,可用于除重
//遍历方法
System.out.println("1.foreach-------");
for (String str:set
) {
System.out.println(str);
}
System.out.println("2.迭代器------");
Iterator<String> it = set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
/*HashSet没有get方法,所以不能使用for循环遍历*/
}
}
HashMap
- 存储的是键对值(相当于python中的字典类型)
- key值不能重复,value值可以重复
- 非顺序存储
import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;
public class HashMapTest {
public static void main(String args[]){
HashMap<String, String> map = new HashMap<String,String>();
map.put("name","路飞");
map.put("sex","男");
map.put("age","母鸡");
System.out.println(map);
System.out.println(map.get("name")); //通过key获取value的值
System.out.println(map.remove("age"));//删除key值并返回其对应的value值
//Hashmap遍历
System.out.println("1.遍历整个键对值-------");
Iterator<Map.Entry<String,String>> it = map.entrySet().iterator(); //Map.Entry<String,String>可以看作是一个字典类型
/*while(it.hasNext()){
String key = it.next().getKey();
System.out.println(key+":"+map.get(key));
}*/
while(it.hasNext()){
Map.Entry<String,String> entry = (Map.Entry<String,String>)it.next();
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key+":"+value);
}
System.out.println("2.遍历key---------");
Iterator<String> it2 = map.keySet().iterator();
while(it2.hasNext()){
String key = it2.next();
System.out.println(key+":"+map.get(key));
}
System.out.println("3.遍历value的值---------");
/*该方法只能获得value的值*/
Iterator<String> it3 = map.values().iterator();
while(it3.hasNext()){
String value = it3.next();
System.out.println(value);
}
}
}