Tag: 集合

如何在Java对象列表中搜索

我有一个对象列表,列表非常大。 对象是 class Sample { String value1; String value2; String value3; String value4; String value5; } 现在我必须在列表中搜索对象的特定值。 假设value3==’three’我必须返回那些对象(我的搜索并不总是基于value3) 清单是 List list = new ArrayList(); 这样做的有效方法是什么? 谢谢。

Java HashSet中元素的排序

为什么第二组和第三组保留顺序: Integer[] j = new Integer[]{3,4,5,6,7,8,9}; LinkedHashSet i = new LinkedHashSet(); Collections.addAll(i,j); System.out.println(i); HashSet hi = new HashSet(i); System.out.println(hi); LinkedHashSet o = new LinkedHashSet(hi); System.out.println(o); 这是我得到的输出: 3,4,5,6,7,8,9 3,4,5,6,7,8,9 3,4,5,6,7,8,9

在对象中实现二进制搜索

有没有办法在带有对象的ArrayList中实现二进制搜索? 在此示例中,ArrayList将使用字段“id”进行排序。 class User{ public int id; public string name; } ArrayList users = new ArrayList(); sortById(users); int id = 66 User searchuser = getUserById(users,id); 如果我应该使用二进制搜索返回具有指定id的用户,那么“User getUserById(ArrayList users,int userid)”如何? 这有可能吗?

如何在Java中从数组(int )创建ArrayList(ArrayList )

我看到了一个问题: 从数组中创建ArrayList 但是,当我使用以下代码尝试该解决方案时,它并不适用于所有情况: import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; public class ToArrayList { public static void main(String[] args) { // this works String[] elements = new String[] { “Ryan”, “Julie”, “Bob” }; List list = new ArrayList(Arrays.asList(elements)); System.out.println(list); // this works List intList = null; intList = Arrays.asList(3, 5); System.out.println(intList); int[] intArray = […]

HashSet的迭代顺序

如果添加到java.util.HashSet的每个对象都以确定的方式实现Object.equals()和Object.hashCode(),则对于添加的每个相同元素集,HashSet上的迭代顺序保证相同, 而不管他们被加入的顺序? 奖金问题:如果插入顺序相同怎么办? (假设Sun JDK6具有相同的HashSet初始化。) 编辑:我原来的问题不明确。 它不是关于HashSet的一般契约,而是Sun在JDK6中实现的HashSet作为有关确定性的保证。 它本质上是非确定性的吗? 什么影响其迭代器使用的顺序?

Iterator的remove方法实际上是如何删除一个对象的

我们都知道,在迭代它时从集合中删除对象的最安全的“且可能只是安全的”方法是首先检索Iterator ,执行循环并在需要时删除; Iterator iter=Collection.iterator(); while(iter.hasNext()){ Object o=iter.next() if(o.equals(what i’m looking for)){ iter.remove(); } } 我想要了解的,并且遗憾的是没有找到深入的技术解释,是如何执行此删除, 如果: for(Object o:myCollection().getObjects()){ if(o.equals(what i’m looking for)){ myCollection.remove(o); } } 将抛出一个ConcurrentModificationException ,“技术术语” Iterator.remove()做什么? 它是否删除了对象,打破了循环并重新启动循环? 我在官方文档中看到: “删除当前元素。如果尝试调用remove()之前没有调用next(),则抛出IllegalStateException 。” 部分“删除当前元素”,让我想到在“常规”循环中发生的完全相同的情况=>(执行相等性测试并在需要时删除),但为什么Iterator循环ConcurrentModification安全?

HashSet.contains性能

我很想要HashSet.contains(Object)方法在恒定时间内执行。 它只是获取一个对象的哈希码,然后在哈希表中查找它。 首先,有人可以确认这是否属实? 第二,如果是真的,是否存在任何冲突的风险,其中两个对象可能具有相同的哈希码,因此HashSet认为它只有两个对象时只有一个?

如何在Java中查询对象集合(Criteria / SQL-like)?

假设您拥有几百个内存中对象的集合,并且您需要查询此List以返回与某些SQL或条件匹配的对象(如查询)。 例如,您可能有一个汽车列表对象,并且您希望返回在20世纪60年代制造的所有汽车,其中车牌以AZ开头,按车型名称排序。 我知道JoSQL ,有没有人使用过它,或者有其他/本土解决方案的经验?

创建arraylist的hashmap的最佳方法

我有.txt格式的一百万行数据。 格式很简单。 对于每一行: USER1,值1 用户2,值2 用户3,值3 USER1,VALUE4 … 你知道我的意思。 对于每个用户,它可能会出现多次,或只出现一次(您永远不会知道)。 我需要找出每个用户的所有值。 因为用户可能会随机出现,所以我使用Hashmap来做。 即:HashMap(key:String,value:ArrayList)。 但是要向arrayList添加数据,我必须经常使用HashMap get(key)来获取arrayList,为它添加值,然后将其放回HashMap。 我觉得效率不高。 谁知道更好的方法呢?

如何在一个class级中制作2个可比较的方法?

我有一个类,我已经通过一个属性对它进行排序。 现在我需要做另一件事,我需要创建另一种方法来对数据进行排序。 我该怎么做,所以我可以在两种方法之间做出选择。 我知道的唯一命令是Collections.sort,它将从我想要比较其数据的类中获取方法compareTo。 它甚至可能吗?