1.ArrayList()
import java.util.ArrayList;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
ArrayList<String> list = new ArrayList<String>();
while(true){
System.out.print("Please:");
String say = input.next();
if (say.equals("no")){
break;
}
list.add(say);
}
System.out.println("今天你说的话有:");
for(int i=0;i<list.size();i++){//遍历list集合
System.out.println(list.get(i).toString());
}
}
}
2.LinkedList()
import java.util.LinkedList;
public class Test3 {
public static void main(String[] args) {
/*
* LinkedList是一个双向链接结构的集合
* 优点:添加、删除元素时速度较快
* 缺点:遍历元素和随机访问元素时速度较慢
*/
LinkedList list = new LinkedList();
//通过add()方法添加
list.add("张三");
list.add("李四");
list.add(2, "element");//指定的索引值来添加
//list.addFirst("第一个");
list.addLast("最后一个");
//通过remove()方法删除
//list.remove("李四");
list.remove(1);// 移除此列表中指定位置上的元素。
for(int i=0;i<list.size();i++){//遍历list集合
System.out.println(list.get(i));//通过get()获取
}
}
}
3.HashSet ()
package 集合;
import java.util.HashSet;
import java.util.Iterator;
public class Test4 {
//它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。
//当多个数据重复时,就会只有一个数据存在,保证数据的唯一性 ,无序排列
public static void main(String[] args) {
HashSet hs = new HashSet();// 构造一个新的空 set,其底层 HashMap 实例的默认初始容量是 16,加载因子是 0.75。
hs.add("王老五");
hs.add("张三");
hs.add("Jack");
hs.add("Bruce");
hs.add("Mandy");
hs.add("王老五");
hs.add("王老五");
hs.add("王老五");
hs.add("王老五");
hs.add(new Student("Mike"));
hs.add(new Student("Mike"));
//1. 获取HashSet的迭代器
Iterator it = hs.iterator(); // 迭代器
while(it.hasNext()){
Object name1 = it.next();
//String name2 = (String) it.next();
System.out.println(name1);
}
System.out.println("元素的数量:"+hs.size());
}
//CTRL+shift+t 查找类型
}
4.TreeSet()
import java.util.Iterator;
import java.util.TreeSet;
public class Test5 {
//当多个数据重复时,就会只有一个数据存在
public static void main(String[] args) {
TreeSet ts = new TreeSet();
ts.add(89);
ts.add(176);
ts.add(325);
ts.add(23);
ts.add(21);
ts.add(654);
ts.add(654);
ts.add(654);
ts.add(654);
Iterator it = ts.iterator();
while(it.hasNext()){
Integer number = (Integer)it.next();
System.out.println(number);
}
}
}
5.HashMap()及Hashtable()
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
public class Test6 {
//HashMap<K,V>
/*
K - 此映射所维护的键的类型
V - 所映射值的类型
*/
public static void main(String[] args) {
//一个键值只能对应一个值,如果存在多个值会默认第一个放进集合的value值
HashMap hm = new HashMap();//不要遍历
// (键,值)对
hm.put("CN", "中国a");
hm.put("CN", "中国b");
hm.put("CN", "中国c");
hm.put("US", "美国");
hm.put("UK", "英国");
hm.put("DE", "德国");
hm.put("K1", "香港1a");
hm.put("K2", "香港2b");
hm.put("k3", "香港3c");
hm.put("JP", "小日本");
hm.put("K", null);
hm.put(null, "77777777777456");
hm.put(null, "456");//put方法可以存在两个空值
hm.put( "0000456",null);
hm.remove("JP"); //根据key来删除值
System.out.println("循环方式一:用key来取值");
// 获取所有的key值
Iterator it = hm.keySet().iterator();//激活所有的键值key
while(it.hasNext()){ //判断还有没有下一个键值
String key = (String)it.next();
// 根据key来取value值
String value = (String)hm.get(key);
System.out.println("key:" + key + ", value:" + value);
}
System.out.println();
System.out.println("循环方式二:用value来取直");
Iterator it2 = hm.values().iterator();//激活所有的value值
while(it2.hasNext()){ //判断还有没有下一个value值
//根据value来取值
String value = (String) it2.next();
System.out.println("value:" + value);
}
System.out.println();
System.out.println("循环方式三:");
// 返回整个map,每个map里都存放的是一个实体entry
Iterator it3 = hm.entrySet().iterator();//激活所有的实体entry
while(it3.hasNext()){//判断还有没有下一个实体entry
//通过实体来获取
Map.Entry entry = (Map.Entry) it3.next();
String key = (String)entry.getKey();//获取对应实体中的key值
String value = (String)entry.getValue();//获取对应实体中的value值
System.out.println("key:" + key + ", value:" + value);
}
System.out.println("此映射中的键-值映射关系数:"+hm.size() );
//删除hashMap元素
/*
* HashMap与Hashtable的区别?
* 区别:
* 1. HashMap允许有一个null值,而Hashtable不允许
* 2. HashMap线程非安全,Hashtable线程安全
*
*/
//一个键值只能对应一个值,如果存在多个值会默认第一个放进集合的value值
Hashtable ht = new Hashtable();
// ht.put(null, null);
Hashtable<String, Integer> numbers = new Hashtable<String, Integer>();
// numbers.put("one", 000001);
// numbers.put("two", 000002);
numbers.put("one", 888);
numbers.put("two", 888);
numbers.put("88", 2);
numbers.put("88", 2);
numbers.put("three", 3);//
numbers.put("three", 344);//
numbers.put("three", 43);
// numbers.put(null, null); //不允许为空值
/*
* 将指定 key 映射到此哈希表中的指定 value。键和值都不可以为 null。
通过使用与原来的键相同的键调用 get 方法,可以获取相应的值。
* */
//方法一:
for(String key : numbers.keySet()) {//遍历
int i=(int)numbers.get(key);
System.out.println("键:"+key+" 值:"+i);
}
//清除
// numbers.clear();
System.out.println("此映射中的键-值映射关系 数:"+numbers.size() );
Iterator num = numbers.keySet().iterator();
while ( num.hasNext()) {
String key=(String)num.next();
int values=(int)numbers.get(key);
System.out.println(key+"\tvalue:"+values);
//numbers.remove(key);
}
}
}
自己的路自己走,从哪跌倒就从哪爬起来,祝你学习愉快,加油伙计!