package cn.ekgc.javasenior.day20210621; import java.util.ArrayList; public class ArrayListDemo01 { public static void main(String[] args) { // 创建一个 ArrayList 对象 ArrayList arrayList = new ArrayList(); // 要想获得 ArrayList 中已经存储了多少个元素的值,可以使用 size(); int size = arrayList.size(); System.out.println("此时 ArrayList 中所存储的元素个数是:" + size); // 如果要将某个数据存储到 ArrayList 中,可以调用 ArrayList 的 add() // 在使用 add() 添加元素时,可以不用关心此时数组的长度,ArrayList 会自动对 Object[] 进行维护 arrayList.add("Hello"); arrayList.add("World"); arrayList.add(123); arrayList.add(98.5); arrayList.add("World"); arrayList.add(true); // 在完成元素的添加之后,查看此时 ArrayList 的元素个数 System.out.println("经过元素的添加之后,此时 ArrayList 的元素个数是:" + arrayList.size()); // 要想从 ArrayList 中获得某个元素,可以使用该元素的下标,借助于 get() 来获得 // 获得下标为 2 的元素的值 int num = (int) arrayList.get(2); System.out.println("下标为 2 的元素的值是:" + num); // 如果需要将 ArrayList 中某个元素的值从数组中删除,可以借助于下标通过 remove() 实现 arrayList.remove(3); System.out.println("将下标为 3 的元素的值移除后,数组的长度是:" + arrayList.size()); // 要想获得某个元素在 ArrayList 中的下标,可以使用 indexOf() 来获得 // 对于 indexOf() 在查找元素的时候,是按照从前往后进行查找,一旦找到,就返回该元素的下标 int index = arrayList.indexOf("World"); System.out.println("World 元素在 ArrayList 中的下标:" + index); // 如果通过 indexOf() 未找到相应元素,那么会返回 -1 表示为找到。 System.out.println("world 元素在 ArrayList 中的下标:" + arrayList.indexOf("world")); // 如果需要从后往前进行查找,那么可以使用 lastIndexOf() 来实现 System.out.println("使用 lastIndexOf() 从后往前查找元素的下标:" + arrayList.lastIndexOf("World")); // 如果要确定在 ArrayList 中是否存在某个元素,可以通过 contains() 来确定 System.out.println("ArrayList 中是否存在元素 World:" + arrayList.contains("World")); } }
package cn.ekgc.javasenior.day20210622; import java.util.Arrays; import java.util.List; public class ForEachDemo { public static void main(String[] args) { // 对于 ArrayList 来说,其本质上就是一个数组,那么对于任意的一个数组,都能够变为 ArrayList // 创建一个 String[] String[] cities = {"渭南", "西安", "咸阳", "宝鸡"}; // 要想将数组变为 ArrayList,则需要使用到 java.util.Arrays 的 asList() 实现 ListcityList = Arrays.asList(cities); // 使用 for 循环遍历 List 集合 for (int i = 0; i < cityList.size(); i++) { // 将 i 作为下标,借助于 List 集合的 get() 获取当前元素 String city = cityList.get(i); System.out.println(city); } // 在 JDK 5 就诞生了增强型 for 循环结构 for (String city : cityList) { System.out.println("使用增强型 for 循环:" + city); } } }
package cn.ekgc.javasenior.day20210621; import java.util.linkedList; public class linkedListDemo01 { public static void main(String[] args) { // 创建 linkedList 对象 linkedList linkedList = new linkedList(); // 由于 linkedList 和 ArrayList 都是 List 接口的实现类,导致两者有大量方法是相同的。 // 要获得 linkedList 中所存储元素的个数,那么通过 size() System.out.println("此时 linkedList 中的元素个数是:" + linkedList.size()); // 通过 add() 向 linkedList 的末尾追加元素 linkedList.add("张涛"); linkedList.add("袁帅杰"); // 也可以通过下标向任意位置追加 linkedList.add(1, "李卓"); // linkedList 提供了向其头部和尾部进行追加元素 linkedList.addFirst("李静平"); linkedList.addLast("袁晓涛"); System.out.println("追加完毕后,元素的个数是:" + linkedList.size()); // 通过下标获得 linkedList 中所存储的元素 System.out.println("获得 linkedList 中下标为 0 的元素:" + linkedList.get(0)); System.out.println("获得 linkedList 中下标为 2 的元素:" + linkedList.get(2)); // 获得 linkedList 的第一个和最后一个元素 System.out.println("linkedList 中的第一个元素是:" + linkedList.getFirst()); System.out.println("linkedList 中的最后一个元素是:" + linkedList.getLast()); // 要想移除 linkedList 中的元素,则借助于下标,使用 remove 进行移除 // 移除下标为 3 的元素 linkedList.remove(3); // 移除第一个和最后一个元素 linkedList.removeFirst(); linkedList.removeLast(); System.out.println(linkedList); } }
package cn.ekgc.javasenior.day20210621; import java.util.ArrayList; public class LoopDemo { public static void main(String[] args) { // 创建 ArrayList 对象 ArrayListarrayList = new ArrayList (); // 由于 ArrayList 底层使用了 Object[] 类型的数组,那么是可以放入任意数据类型的元素的 // 导致存储在 ArrayList 中的元素存在各种数据类型。那么在获取元素的时候,就无法确定该元素的数据类型。 // 因此对于集合中所存储的元素并不是任意类型都可以,而是和数组一样,规定相应的数据类型时比较方便。 // 因此需要规定存储集合中的元素的数据类型,那么在 JDK 5 产生了泛型的这一概念。 // 泛型:形如 <数据类型> 来规范存入一个集合中的数据类型。 // 要求所有的集合在创建的时候,都必须增加泛型,以约定所存储的数据类型。 // 需要特别注意的是,泛型中的数据类型不能是基本数据类型。 // Java 不属于纯面向对象语言,因为 Java 存在 8 个基本数据类型。 // 所谓的纯面向对象语言,指的是所有的数据类型都能够通过 new 来创建其对象。 // Java 之所以要存在 8 个基本数据类型,原因在于这 8 个基本数据类型的值会经常使用,为了能够高效率的使用, // 就将其直接存储到了栈内存,因此不需要进行 new 来创建,从而存储到堆内存中。 arrayList.add("张涛"); arrayList.add("李静平"); // arrayList.add(250); // arrayList.add(true); // arrayList.add(new Student()); // arrayList.add('男'); // 使用 for 循环遍历 ArrayList for (int i = 0; i < arrayList.size(); i++) { // 由于有了泛型的约定,那么从这个集合中所提取的每个元素的数据累心就是统一的,那么不在需要强制类型转换 String str = arrayList.get(i); System.out.println(str); } } }
package cn.ekgc.javasenior.day20210622; import java.util.HashSet; import java.util.Iterator; public class SetDemo01 { public static void main(String[] args) { // 创建 HashSet 对象 HashSethashSet = new HashSet (); // 要想向 HashSet 中存放元素,那么通过 add() 来实现 hashSet.add("张涛"); hashSet.add("李静平"); hashSet.add("李卓"); hashSet.add("党奥"); // 通过 size() 获得此时 HashSet 中所拥有的元素数量 System.out.println("此时 HashSet 中所拥有的元素数量是:" + hashSet.size()); // 向 HashSet 中增加相同的元素 hashSet.add("张涛"); hashSet.add("李静平"); System.out.println("经过添加相同元素后,HashSet 的元素个数是:" + hashSet.size()); // 要想删除一个元素,通过 remove 来进行删除 // 对于 List 集合来说,在移除元素时,是通过下标进行的, // 由于 Set 集合时无序的,那么就不存在下标这个概念,那么就只能通过元素本身进行删除 hashSet.remove("党奥"); System.out.println("移除一个元素之后,HashSet 的元素个数是:" + hashSet.size()); // 通过 contains 来确定是否包含该元素 System.out.println("HashSet 中是否包含 李卓123:" + hashSet.contains("李卓123")); // 要想获得 Set 集合中的元素,是无法通过下标获得的,只能够进行循环遍历,判断是否是需要的元素 // 如果使用普通的 for 循环,是无法办到的,因为普通的 for 循环本质上还是借助于下标获得元素, // 因为为了能够使用到 for 循环遍历 Set 集合,于是在 JDK 5 推出了增强型 for 循环,也成为了 for each 循环 for (String name : hashSet) { System.out.println("使用增强型 for 循环循环 HashSet:" + name); } // 对于循环集合,提供了使用迭代器 Iterator 的方式来进行。 // 通常可以使用 Iterator 来迭代遍历 Set 集合 // 调用 Set 集合的 iterator() 将 Set 集合的所有元素变为一个 Iterator 对象 Iterator iterator = hashSet.iterator(); // 通过 Iterator 对象的 hasNext() 判断此时是否还有元素 // 由于元素的个数是无法确定的,因此使用 while 循环 while (iterator.hasNext()) { // 当 iterator 的 hasNext() 判断为 true 的时候,则说明迭代器中还有元素 // 借助于 Iterator 的 next() 将该元素取出进行使用 String name = iterator.next(); System.out.println("使用迭代器的方式获得元素:" + name); } } }
package cn.ekgc.javasenior.day20210622; import java.util.HashMap; import java.util.Set; public class HashMapDemo01 { public static void main(String[] args) { // 创建 HashMap 对象 HashMaphashMap = new HashMap (); // 要想获得此时 HashMap 中的 key-value 的个数,通过 size() 能够获得 System.out.println("此时 HashMap 中的 key-value 组合个数:" + hashMap.size()); // 通过 put(key, value) 来向 HashMap 中存储 key-value 组合 hashMap.put("PRC", "中华人民共和国"); hashMap.put("USA", "美利坚合众国"); hashMap.put("RU", "俄罗斯联邦"); hashMap.put("RF", "法兰西共和国"); hashMap.put("UK", "大不列颠及北爱尔兰联合王国"); System.out.println("经过 put() 存放元素之后,此时 HashMap 中的值:" + hashMap.size()); // 向 HashMap 中存储一个 key 相同的组合 hashMap.put("USA", "灯塔之国"); System.out.println("在存放了相同 key 的组合之后,此时 HashMap 中的值:" + hashMap.size()); // 要想获得存储在 HashMap 中的 value,则需要通过 key 来获得 String usa = hashMap.get("USA"); System.out.println("USA - " + usa); // 要想移除某个 key-value 组合,那么借助于 key 来实现 hashMap.remove("RF"); System.out.println("移除元素之后,HashMap 中的值的个数:" + hashMap.size()); // 通过 key = RF 来获得相应的元素 // 如果 Map 没有对应的 key,那么通过这个 key 所获得的 value 的值是 null。 System.out.println("RF - " + hashMap.get("RF")); // 循环遍历 Map 集合中的每个 key-value 组合。 // 对于循环遍历 Map 集合,有以下两种思路: // 1、由于 Map 集合中的 value 是通过 key 来获得的,如果能够循环遍历 Map 集合的 key // 那么就可以借助于 key 来获取每一个 value // 对于 Map 集合 key,是可以单独形成一个 Set 集合的。 Set keySet = hashMap.keySet(); // 对于变成 Set 集合的 key 来说,就可以使用增强型 for 循环来实现 for (String key : keySet) { // 获得 key 之后,就可以借助于 Map 的 get 来获取对应的 value String value = hashMap.get(key); System.out.println(key + " : " + value); } // 要想判断 HashMap 中是否存在某个 key,可以通过 containsKey 来判断 System.out.println("HashMap 是否存在 key = RF:" + hashMap.containsKey("RF")); // 要想直接判断是否存在 value,则通过 containsValue System.out.println("HashMap 是否存在 value = 美利坚合众国:" + hashMap.containsValue("美利坚合众国")); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)