java 16-1 ArrayList的练习1

  需求:

    ArrayList去除集合中字符串的重复值(去掉相同的字符串)
  分析:
    第一种做法:创建一个新的空集合:
      A:创建1个具有相同字符串的集合
      B:创建1个空的集合
      C:遍历第一个集合里面的元素
      D:把遍历的元素一个个放进去第二个集合中,但有条件
          a:若第二个集合中没有这个元素,则添加进去
          b:若有这个元素,则不添加
      E:遍历第二个集合,输出

 1 package cn_ArrayList;
 2
 3 import java.util.ArrayList;
 4 import java.util.Iterator;
 5 public class ArrayListTest1 {
 6
 7 public static void main(String[] args) {
 8 //创建具有相同字符串的集合
 9 ArrayList list1 = new ArrayList();
10 //给这个集合添加元素,有重复值
11 list1.add("阿猫");
12 list1.add("阿狗");
13 list1.add("草草");
14 list1.add("花花");
15 list1.add("阿猫");
16 list1.add("草草");
17 list1.add("阿狗");
18 list1.add("阿狗");
19
20 //再创建一个空内容的集合
21 ArrayList list2 = new ArrayList();
22
23 //遍历第一个集合
24 for(int x = 0 ; x < list1.size(); x++){
25 String s = (String)list1.get(x);
26
27 //判断第二个集合中是否包含此刻遍历的这个元素
28 if(! list2.contains(s)){
29 list2.add(s);
30 }
31 }
32 //遍历第二个集合
33 Iterator it = list2.iterator();
34 while(it.hasNext()){
35 String ss = (String)it.next();
36 System.out.println(ss);
37 }
38 }
39
40 }

第二种方法:

  需求:

     ArrayList去除集合中字符串的重复值(去掉相同的字符串)
  分析:
    第二种方法:自身元素进行对比
      A:创建一个含有重复元素的集合
      B:利用选择排序法的思想进行查询
          a:索引0的跟后面的对比
            1:若有相同的,则删除后面的,此时注意,要对这个集合的元素减去1
            2:若没有相同的,则保留
          b:第一轮后,索引1再次重复a步骤
      C:遍历集合,输出

 1 package cn_ArrayList;
 2
 3 import java.util.ArrayList;
 4 import java.util.Iterator;
 5 public class ArrayListTest2 {
 6
 7 public static void main(String[] args) {
 8 //创建一个含有重复元素的集合
 9 ArrayList al = new ArrayList();
10
11 //给集合添加元素,含有重复的
12 al.add("阿猫");
13 al.add("阿狗");
14 al.add("草草");
15 al.add("花花");
16 al.add("阿猫");
17 al.add("草草");
18 al.add("阿狗");
19 al.add("阿狗");
20
21 //选择排序法的思想进行查询:
22 for(int x = 0; x< al.size() - 1; x++ ){ //设置对比的索引
23 for(int y = x + 1; y < al.size(); y++){ //设置被对比的索引
24 if(al.get(x).equals(al.get(y))){ //对比集合上x和y索引上的值
25 al.remove(y); //删除这个相同的元素
26 y -- ; //每有一个相同的元素,要进行对比的元素就减少1个
27 }
28 }
29 }
30 //对完成后的集合进行遍历
31 //方法1:迭代器
32 Iterator it = al.iterator();
33 while(it.hasNext()){
34 String s = (String)it.next();
35 System.out.println(s);
36 }
37 System.out.println("-----------");
38
39 //方法2:for循环
40 for(int z = 0; z < al.size(); z ++){
41 String ss = (String)al.get(z);
42 System.out.println(ss);
43 }
44 }
45 }
时间: 2024-08-07 12:30:06

java 16-1 ArrayList的练习1的相关文章

java 16 -11 ArrayList存储自定义对象并增强for遍历

需求:ArrayList存储自定义对象并遍历.要求加入泛型,并用增强for遍历. A:迭代器 B:普通for     C:增强for LinkedList,Vector,Colleciton,List等存储继续练习 增强for是用来替迭代器. 1 package cn_JDK5new; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; 5 6 7 public class ArrListDemo2 { 8 public st

Java中的ArrayList的初始容量和容量分配

List接口的大小可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.ArrayList继承于List接口,除继承过来的方法外,还提供一些方法来操作内部用来存储列表的数组的大小.每个ArrayList实例都有一个容量.该容量是指用来存储列表元素的数组的大小.它总是至少等于列表的大小.随着向ArrayList中不断添加元素,其容量也自动增长.并未指定增长策略的细节,因为这不只是添加元素会带来分摊固定时间开销那样简单. ArrayList是经常会被用到的,一般情况下,使用的

JAVA-基础-第16章 ArrayList集合

ArrayList集合 JDK中提供了一系列特殊的类,这些类可以存储任意类型的元素,并且长度可变,统称为集合. ArrayList集合是程序中最常见的一种集合,它属于引用数据类型(类).在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组. 集合的创建 导包:import java.util.ArrayList; 创建对象:与其他普通的引用数据类型创建方式

java 16进制转换10进制

public static String toHexString2(byte[] b) { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < b.length; ++i) { buffer.append(toHexString2(b[i])); } return buffer.toString(); } public static String toHexString2(byte b) { char[] buffer =

JAVA集合类之ArrayList源码分析

ArrayList继承自AbstractList抽象类,实现了List接口.  public class ArrayList<E> extends AbstractList<E>         implements List<E>, RandomAccess, Cloneable, java.io.Serializable ArrayList类中存储数据用的是Object类型的数组 private transient Object[] elementData; 此处的

Java中针对 ArrayList和LinkedList 的区别

一般大家都知道ArrayList和LinkedList的大致区别:      1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构.      2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针.      3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据. ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用

Java之——删除ArrayList中的反复元素的2种方法

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47414935 ArrayList是Java中最经常使用的集合类型之中的一个.它同意灵活加入多个null元素,反复的元素,并保持元素的插入顺序.在编码时我们经常会遇 到那种必须从已建成的ArrayList中删除反复元素的要求.这篇文章将给出两种从ArrayList中删除反复元素的方法. 方法1:使用HashSet删除ArrayList中反复的元素 在该方法中.我们使用HashSet

实现Java中的ArrayList

最近深受轮子哥影响,觉得造一些轮子应该会对自己的技术功底有一定的帮助,就决定先从简单的容器开始实现.废话不多说,就先实现一个Java中的ArrayList. ArrayList是我们在Java中使用非常多的一个类,它是顺序表的数组实现,LinkedList是顺序表的链式实现(自己编的名字,懂就好哈),还有个Vector,它与ArrayList比较像,区别是它是线程安全的. 顺序表应该都有相同的操作,所以我先定义一个接口,描述好顺序表需要哪些操作.代码如下: public interface KI

Java之——删除ArrayList中的重复元素的2种方法

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47414935 ArrayList是Java中最常用的集合类型之一.它允许灵活添加多个null元素,重复的元素,并保持元素的插入顺序.在编码时我们经常会遇 到那种必须从已建成的ArrayList中删除重复元素的要求.这篇文章将给出两种从ArrayList中删除重复元素的方法. 方法1:使用HashSet删除ArrayList中重复的元素 在该方法中,我们使用HashSet来删除重复

JAVA Vector和ArrayList使用及性能比较

  相同点: 都继承于AbstractList,并且实现List接口 都实现了RandomAccess和Cloneable接口 默认数组容量是10个 都支持Iterator遍历 不同点: ArrayList是非线程安全: 而Vector是线程安全的,它的函数都是synchronized的,即都是支持同步的 序列化支持不同: ArrayList实现了java.io.Serializable接口 容量增加数量不同: 容量不足时,"ArrayList新的容量"="(原始容量x3)/