Java 值在从ArrayList转换为ArrayList时交换

Java 值在从ArrayList转换为ArrayList时交换,java,android,arrays,arraylist,Java,Android,Arrays,Arraylist,我有一个ArrayList,它有一些元素。此列表中的项目将重复。我想将相似的值分组并将其转换为数组 目前我的ArrayList是:- ArrayList<String> isonC = new ArrayList<String>(); 为什么第二和第三个值互换 任何建议都会有帮助。 感谢来自forLinkedHashSet的: 哈希表和链表的集合接口实现,具有可预测的迭代顺序。此实现与HashSet的不同之处在于,它维护一个贯穿其所有条目的双链接列表。此链表定义了迭代顺

我有一个ArrayList,它有一些元素。此列表中的项目将重复。我想将相似的值分组并将其转换为数组

目前我的ArrayList是:-

ArrayList<String> isonC = new ArrayList<String>();
为什么第二和第三个值互换

任何建议都会有帮助。 感谢来自for
LinkedHashSet的:

哈希表和链表的集合接口实现,具有可预测的迭代顺序。此实现与HashSet的不同之处在于,它维护一个贯穿其所有条目的双链接列表。此链表定义了迭代顺序,即元素插入到集合中的顺序(插入顺序)。请注意,如果将图元重新插入到集合中,则插入顺序不受影响。(如果s.contains(e)在调用前立即返回true时调用s.add(e),则元素e将重新插入到集合s中。)

因此,假设您希望在
oldArray
中较早出现的项目在
newArray
中较早出现,那么下面的操作应该有效:

String[] newArray = new LinkedHashSet<String>(Arrays.asList(oldArray)).toArray(new String[0]);
String[]newArray=newlinkedhashset(Arrays.asList(oldArray)).toArray(新字符串[0]);
来自for
链接数据库集

哈希表和链表的集合接口实现,具有可预测的迭代顺序。此实现与HashSet的不同之处在于,它维护一个贯穿其所有条目的双链接列表。此链表定义了迭代顺序,即元素插入到集合中的顺序(插入顺序)。请注意,如果将图元重新插入到集合中,则插入顺序不受影响。(如果s.contains(e)在调用前立即返回true时调用s.add(e),则元素e将重新插入到集合s中。)

因此,假设您希望在
oldArray
中较早出现的项目在
newArray
中较早出现,那么下面的操作应该有效:

String[] newArray = new LinkedHashSet<String>(Arrays.asList(oldArray)).toArray(new String[0]);
String[]newArray=newlinkedhashset(Arrays.asList(oldArray)).toArray(新字符串[0]);

尝试使用
TreeSet
而不是HashSet。请尝试以下操作:-

TreeSet<String> mySet =  new TreeSet <String>(myArrayList);
myArray =  mySet.toArray(new String[mySet.size()]);
TreeSet mySet=newtreeset(myArrayList);
myArray=mySet.toArray(新字符串[mySet.size()]);

尝试使用
TreeSet
而不是HashSet。请尝试以下操作:-

TreeSet<String> mySet =  new TreeSet <String>(myArrayList);
myArray =  mySet.toArray(new String[mySet.size()]);
TreeSet mySet=newtreeset(myArrayList);
myArray=mySet.toArray(新字符串[mySet.size()]);

在删除重复元素后(按字典顺序)对项目重新排序是否足够?@JaeHeonLee不太合适。。我有一个给定的颜色数组,它的顺序必须是你使用的
HashSet
HashSet
不保持顺序,文档说“它不保证集合的迭代顺序;特别是,它不保证顺序随时间保持不变”()删除重复的元素后(按字典顺序)对项目重新排序就足够了吗?@JaeHeonLee不是真的。。我有一个给定的颜色数组,它的顺序必须是你使用的
HashSet
HashSet
不保持顺序,文档说“它不保证集合的迭代顺序;特别是,它不保证顺序随时间保持不变”()我尝试了LinkedHashSet,但不知何故,我得到了相同的结果,除了最后两个项目swapped@user3146095:如果我尝试使用您的示例输入(大写C改为小写C),我会得到正确的顺序。您确定原始ArrayList中的顺序正确吗?可能这是LinkedHashSet文档中提到的“重新插入”的情况。我尝试了LinkedHashSet,但不知何故,我得到了相同的结果,除了最后两项swapped@user3146095:如果我尝试使用您的示例输入(大写C改为小写C),我会得到正确的顺序。您确定原始ArrayList中的顺序正确吗?可能这是LinkedHashSet文档中提到的“重新插入”的情况