1.list(arrylist,linklist)
list有序可大量重复
arrylist:数组,适合做查询,最常用
linklist:链表,适合做插入,删除
ArrayList<String> strlist = new ArrayList<String>();
strlist.add("王昭君");
strlist.add("西施");
strlist.add("杨玉环");
strlist.add("米莱迪");
//打印个数
System.out.println(strlist);
strlist.remove("米莱迪");
//查看是否去除
System.out.println(strlist);
//查看集合数量
System.out.println(strlist.size());
//获取列表中元素,根据数组下标
System.out.println(strlist.get(2));
//判断集合中是否存在元素
System.out.println(strlist.contains("王昭君"));
运行结果(arraylist和linklist的操作基本一致)
遍历list集合,采用for循环的方法
for(int i =0;i<strlist.size();i++) {
System.out.println(strlist.get(i));
}
2.Set集合
set:无顺序添加,不可重复
方法与list基本一致,就不演示了
3.Map
treemap(排序)和hashmap(不排序)
是以key和value形式存储的键值对集合
HashMap<String, Object> hashmap = new HashMap<String, Object>();
hashmap.put("1", "凯");
hashmap.put("2", "卢布");
hashmap.put("3", "炸弹猫");
hashmap.put("4", "东方曜");
hashmap.put("5", "孙悟空");
//打印查看集合中元素
System.out.println(hashmap);
hashmap.remove("2");
//打印查看集合中元素是否删除
System.out.println(hashmap);
//打印查看集合中元素个数
System.out.println(hashmap.size());
//打印查看集合中元素是否存在
System.out.println(hashmap.containsKey("2"));
System.out.println(hashmap.containsValue("炸弹猫"));
//出现相同key,之前集合中元素会被覆盖
hashmap.put("2", "吕德华");
System.out.println(hashmap);
//通过get(key)查询value值
System.out.println(hashmap.get("2"));
//通过keySet将map中所有key打包成set集合返回
Set<String> keySet = hashmap.keySet();
System.out.println(keySet);
运行结果:
容器练习题
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("小明");
list.add("小红");
list.add("小刚");
list.add("小勇");
Scanner scanner = new Scanner(System.in);
System.out.println("请输入过滤的语句:");
String nextLine = scanner.nextLine();
for(int i = 0;i<list.size();i++) {
//拿到敏感词
String string = list.get(i);
if(nextLine.contains(string)) {
String s = "";
for(int j = 0;j<string.length();j++) {
s=s+"*";
}
nextLine=nextLine.replace(string,s);
}
}
System.out.println(nextLine);
}
4.迭代器(while很重要)
注意:Set调用迭代器直接调用,Map调用迭代器先用keySet将键打包成数组,再调用迭代器
HashMap<String, Object> hashMap = new HashMap<String,Object>();
hashMap.put("1", "反码");
hashMap.put("2", "主码");
hashMap.put("3", "ascll码");
hashMap.put("4", "条形码");
Set<String> keySet = hashMap.keySet();
java.util.Iterator<String> iterator = keySet.iterator();
while(iterator.hasNext()) {
String key = iterator.next();
System.out.println(hashMap.get(key));
}
/*运行结果:反码
主码
ascll码
条形码*/
迭代器迭代方式二:entry
迭代器还可以放对象:
增强for循环
语法:
for(类型 空格 变量:数组或集合){
}
解释:将数组或者集合赋值给变量,让变量进行遍历
ArrayList<String>list = new ArrayList<String>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); for(String str:list) { System.out.print(str+" "); } //1 2 3 4 5
Collections常用方法(接口)
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(66);
list.add(345);
list.add(988);
list.add(123);
//最小值
System.out.println(Collections.min(list));
//最大值
System.out.println(Collections.max(list));
//排序
Collections.sort(list);
System.out.println(list);
//打乱顺序
Collections.shuffle(list);
System.out.println(list);
}