假如有很多相同的数据类型元素或者对象,怎么办。
数组和集合就很好解决这问题了
数组
数组是用来存储固定大小的同类型元素
声明数组变量
语法:
dataType[] arrayRefVar;
示例:
double[] numbers;
创建数组
- 第一种:numbers = new double[3]
- 第二种:numbers = {12,11,10}
第一种:仅仅开辟了3个双精度变量,没有赋值,每个变量都是0,因为double值默认是0。
还得赋值
numbers[0] = 10;
numbers[1] = 12;
numbers[2] = 14;
第二种可认为是一个数组赋值给另外一个数组
集合
首先明白什么数据需要放到集合中
- 同时集中存放多个数据
- 集中存放的数据数量不确定
- 最好具有映射关系(即一个key对应一个value,如身高:170,体重:60kg)
集合中存放什么类型的值
集合中只能保存“对象”
List集合
有序,可以重复的集合
示例实例化
List list = new ArrayList()
开发中一般加上类型校验泛型
List<String> list = new ArrayList();
list.add("小猫")
list.add("小狗")
快速赋值:List<String> lists = Arrays.asList("小猫","小狗")
示例类
public class Test{
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("Hello");
list.add("World");
list.add("HAHAHAHA");
//第一种遍历方法使用 For-Each 遍历 List
for (String str : list) { //也可以改写 for(int i=0;i<list.size();i++) 这种形式
System.out.println(str);
}
//第二种遍历,把链表变为数组相关的内容进行遍历
String[] strArray=new String[list.size()];
list.toArray(strArray);
for(int i=0;i<strArray.length;i++) //这里也可以改写为 for(String str:strArray) 这种形式
{
System.out.println(strArray[i]);
}
//第三种遍历 使用迭代器进行相关遍历
Iterator<String> ite=list.iterator();
while(ite.hasNext())//判断下一个元素之后有值
{
System.out.println(ite.next());
}
}
}
Map集合
public class Test{
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("1", "value1");
map.put("2", "value2");
map.put("3", "value3");
//第一种:普遍使用,二次取值
System.out.println("通过Map.keySet遍历key和value:");
for (String key : map.keySet()) {
System.out.println("key= "+ key + " and value= " + map.get(key));
}
//第二种
System.out.println("通过Map.entrySet使用iterator遍历key和value:");
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
//第三种:推荐,尤其是容量大时
System.out.println("通过Map.entrySet遍历key和value");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
//第四种
System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
for (String v : map.values()) {
System.out.println("value= " + v);
}
}
}
网友评论