/** * 集合操作 --线性表 概念: List是Collection的子接口,用于定义线性表数据结构. * 可以将List理解为存放数据的数组.只不过个数可以动态的删除和增加. * * List有两个常用的实现类,ArrayList和LinkedList. 两者在功能上相同,只是性能上有些差异. * ArrayList是用动态数组的方式体现,更适合随机访问. * LinkedList是用链表的方式体现,更适合增删插入. 如果对性能要求不苛刻,可以忽略性能差异. * * List除了继承Collection的方法外,还针对线性表的 数据结构定义了一系列方法. * 最常用的get,set方法. * E get(intindex) 获取集合中指定下标对应的元素,从0开始 * E set(int index,E elments) 将给定的元素存入到指定的位置,并返回原来的元素 * * ----------------------------------------------------------------------------- 案例1 使用List的set方法和get方法设置和获取集合中的元素: * * 1) 创建List接口的引用list,使该引用指向ArrayList的实例。 * 2)将字符串“java”、“cpp”、“php”、“c#”、“objective-c”放入集合list中。 * 3)使用List接口提供的get方法和size方法遍历集合list,并将每一个字符串元素转换成大写。 * 4)将索引位置为1的元素替换为c++,并输出被替换掉的元素以及集合list。 5) 交换集合list中索引位置为1和索引位置为3的元素。 */ public class ListGetandSetDemo { public static void main(String[] args) { /* 案例1 使用List的set方法和get方法设置和获取集合中的元素 */ //1) 创建List接口的引用list,使该引用指向ArrayList的实例。 List<String> list = new ArrayList<String>(); //2) 将字符串“java”、“cpp”、“php”、“c#”、“objective-c”放入集合list中。 list.add("java"); list.add("cpp"); list.add("php"); list.add("c#"); list.add("objective-c"); //3) 使用List接口提供的get方法和size方法遍历集合list,并将每一个字符串元素转换成大写。 for (int i = 0; i < list.size(); i++) { String getStr = list.get(i); System.out.println(getStr.toUpperCase()); } //4)将索引位置为1的元素替换为c++,并输出被替换掉的元素以及集合list。 String replaceStr = list.set(1, "c++"); System.out.println("替换掉的元素为: "+replaceStr); System.out.println("list替换之后的内容为: "+list); /*输出结果: * 替换掉的元素为: cpp list替换之后的内容为: [java, c++, php, c#, objective-c] */ //5) 交换集合list中索引位置为1和索引位置为3的元素。 String temp = list.set(1, "temp"); temp = list.set(3,temp); temp = list.set(1, temp); System.out.println("list替换之后的内容为: "+list); // list.set(1, list.set(3, list.get(1))); 简化书写 } }
List根据下标的操作还支持插入和删除
/** * List根据下标的操作还支持插入和删除 * void add(int index,E elements) * 将给定的元素插入到指定的位置,原位置及后续元素都顺序向后移 * E remove (int index) * 删除给定的下标的元素,并返回. * 案例 向List集合的指定索引位置插入元素以及移除指定索引位置的元素,详细要求如下: 1) 创建List接口的引用list,使该引用指向ArrayList的实例;将字符串“java”、 “c#”放入集合list中。 2) 在索引位置为1处,插入字符串元素“cpp”。 3) 移除索引位置为2的元素。 * */ public class ListAddAndDelDemo { public static void main(String[] args) { /* 案例1 向List集合的指定索引位置插入元素以及移除指定索引位置的元素 */ //1) 创建List接口的引用list,使该引用指向ArrayList的实例;将字符串“java”、 “c#”放入集合list中。 List<String> list = new ArrayList<String>(); list.add("java"); list.add("c#"); System.out.println(list); //[java, c#] //2) 在索引位置为1处,插入字符串元素“cpp”。 list.add(1,"cpp"); /*List重载了带有索引位置参数的add方法,该方法将对象插入集合的指定索引位置 * (相当于前插,可以理解为对象插入集合后其索引为指定的参数)。 * 重载Collection接口的add方法. */ System.out.println(list); //[java, cpp, c#] //3) 移除索引位置为2的元素。 list.remove(2); /*List重载的带有索引位置参数的remove方法,移除list集合中索引位置为2的元素 *重载Collection接口的remove方法.*/ System.out.println(list); //[java, cpp] } }
时间: 2024-10-15 11:25:12