网站建设教学设计,泰安做网站建设的,容桂网站建设公司,珠海电商网站建设说明#xff1a;set()方法是来修改指定位置的元素。
两个参数#xff0c;第一个参数是要修改的元素的索引#xff0c;第二个参数是要设置的新值。
案例一#xff1a;当链表中传入的是字符串时#xff1a; public static void main(String[] args) {List list new Linke… 说明set()方法是来修改指定位置的元素。
两个参数第一个参数是要修改的元素的索引第二个参数是要设置的新值。
案例一当链表中传入的是字符串时 public static void main(String[] args) {List list new LinkedList();list.add(鱼香肉丝);list.add(粉蒸肉);list.add(梅干菜扣肉);System.out.println(迭代器遍历);Iterator ito list.iterator();while (ito.hasNext()) {Object o ito.next();System.out.println(o);}//交换前两个元素正确做法String str1 (String)list.get(0);String str2 (String)list.get(1);list.set(0,str2);list.set(1,str1);//交换前两个元素错误示例//list.set(0,list.get(1));//list.set(1,list.get(0));System.out.println(增强for遍历);for (Object ob : list) {System.out.println(ob);}} 错误示例当调用list.get(1)时便将list.get(0)覆盖了此时的 list.get(0)粉蒸肉。
当然面对元素较少的List 你也可以选择重新赋初值示例如下 list.set(0,粉蒸肉);list.set(1,鱼香肉丝);
打印结果 案例二当list传入的不是字符串而是一个对象时 public static void main(String[] args) {List list new LinkedList();
// List list new Vector();
// List list new ArrayList();list.add(new Book(红楼小梦,曹雪芹,35.5));list.add(new Book(霸王别姬,张艺谋,98.5));list.add(new Book(一代妖姬,未知,30.5));list.add(new Book(前任三传,郑恺,32.5));System.out.println(迭代器遍历);Iterator ito list.iterator();while (ito.hasNext()) {Object o ito.next();System.out.println(o);}Book book1 (Book)list.get(0);Book book2 (Book)list.get(1);//交换前两个元素list.set(0,book2);list.set(1,book1);System.out.println(增强for遍历);for (Object ob : list) {System.out.println(ob);}}
此时是创建的Book对象而set()方法中并不会覆盖赋值后的Book对象只是对Book实例的引用而已。
打印结果 小结
当想要交换List的元素时如果面对的对象较少建议直接赋初值当面对元素较多时可以将List向下转型创建新的对象。此时调用set()方法并不会覆盖对象的地址只是对对象地址的引用而已。对象地址创建完在堆中数据在常量池中。