我有一个家庭作业,我需要插入或添加新的元素ArrayList<Interger>与以下条件:
元素必须按升序排列.
没有重复的元素ArrayList<Integer>
插入方法在O(n)次运行.
这是我在添加新元素之前检查重复元素的insert方法.
public void insert(int x){
//effect: Check duplicate elements if not x to the elements;
boolean found = false;
if(super.size()!=0){
for(int i=0; i<super.size(); i++){
if(super.get(i)==x){
found = true;
}
}
}
if(found){ return; }
else{ super.add(x); }
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做?谢谢.
加成
这是我的类名InSetExtra
public class IntSetExtra extends ArrayList<Integer> {
private static final long serialVersionUID = 1L;
public IntSetExtra(){
super();
}
public void insert(int x){
//effect: Check duplicate elements if not …Run Code Online (Sandbox Code Playgroud) 在Java和Android中,我最终ArrayList<String>用于供应列表,因为我发现它们比标准更容易使用String[].我真正的问题,虽然此:
什么是<String>的部分ArrayList<String>叫什么?
如何创建类并使用<>[修饰符]?(我不知道它实际上叫什么,所以现在它是修饰符).
谢谢!
我有一个关于POJO中List的初始化的问题,因为它遵循下一个代码:
public class Person {
//other fields...
private List<String> friends=new ArrayList<>();
public List<String> getFriends() {
return friends;
}
public void setFriends(List<String> friends) {
this.friends = friends;
}
}
Run Code Online (Sandbox Code Playgroud)
或者它是这样的更好,并在其他类中具有初始化(例如Bean(JSF))
public class Person {
//other fields...
private List<String> friends;
public List<String> getFriends() {
return friends;
}
public void setFriends(List<String> friends) {
this.friends = friends;
}
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是什么方法更好?
如果我有一张这样的清单
var foo = mutableListOf("John", "Wayne")
Run Code Online (Sandbox Code Playgroud)
如果我想在列表顶部添加一个元素,到目前为止我正在考虑两个选项。
第一的:foo.add(0, "Twyla")
第二:foo = (mutableListOf("Twyla") + foo).toMutableList()
我不知道上述两种选择在性能方面的表现如何,但一般推荐的方法是什么?
例如,在 JDK17 中阅读 ArrayList 类的 OpenJDK 代码时
(https://github.com/openjdk/jdk17/blob/master/src/java.base/share/classes/java/util/ArrayList.java)
我偶然发现了以下构造函数:
public ArrayList(Collection<? extends E> c) {
Object[] a = c.toArray();
if ((size = a.length) != 0) {
if (c.getClass() == ArrayList.class) {
elementData = a;
} else {
elementData = Arrays.copyOf(a, size, Object[].class);
}
} else {
// replace with empty array.
elementData = EMPTY_ELEMENTDATA;
}
}
Run Code Online (Sandbox Code Playgroud)
c.getClass()区分是或不是的原因是什么ArrayList.class?这个案子有必要分拆吗?
(我只是想理解 OpenJDK 类 ArrayList 发行版中的 Java 代码。)
我可以很好地比较字符串,但想知道如何对浮点数进行排名?
getChange()返回一个String.我希望能够降序排序.我怎样才能做到这一点?
更新:
package org.stocktwits.helper;
import java.util.Comparator;
import org.stocktwits.model.Quote;
public class ChangeComparator implements Comparator<Quote>
{
public int compare(Quote o1, Quote o2) {
float change1 = Float.valueOf(o1.getChange());
float change2 = Float.valueOf(o2.getChange());
if (change1 < change2) return -1;
if (change1 == change2) return 0; // Fails on NaN however, not sure what you want
if (change2 > change2) return 1;
}
}
Run Code Online (Sandbox Code Playgroud)
我收到编译时错误:
This method must return a result of type int ChangeComparator.java
Run Code Online (Sandbox Code Playgroud) 我正在使用嵌套的ArrayList for Tablayout.ArrayList的每个元素都会填充每个Tab.标签计数根据父级arraylist的大小而变化.例如,当父ArrayList的大小为2时,选项卡数为2; 当大小3标签计数3..etc..为了解释这种情况很困难,我准备了expalantion图像..
图片1
此图像代表一般外观.我想用ArrayLists为每个元素填充这个TextViews
图2
此图像代表我的数据类型; 键和值ArrayList是嵌套的arraylist,它们在每个索引中包含arraylist.
图3 - 图像4 - 图像5
这个图像代表了tabLayouts过去的样子.我希望我的数据看起来像这个图像.
所以问题是PopUpDetailsAdapterPlanT Class;
当我使用下面的代码时,每行填充相同的项目.对于此示例,每行写入ArrayList的最后一个元素(位置 - 明尼苏达州)如何处理此问题.谢谢你的帮助
public class PopUpDetailsAdapterPlanT extends ArrayAdapter {
Context context;
private ArrayList<ArrayList<Object>> keys;
private ArrayList<ArrayList<String>> values;
public PopUpDetailsAdapterPlanT(Context context, ArrayList<ArrayList<Object>> keys, ArrayList<ArrayList<String>> values) {
super(context,R.layout.popupdetails_listview_simpleitem);
this.keys = keys;
this.values = values;
this.context = context;
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = …Run Code Online (Sandbox Code Playgroud) 我想在列表中添加一个字符串的字母,但我只想添加一次字母.例如,如果字符串是"HELLO AM CHRISTOS WHITE",则某些字母会出现多次,所以我希望它们只能添加一次.
我正在考虑两个for循环:
for (int i=0; i< str.length(); i++){
for(int j=0; j< str.length(); j++){
if (str.charAt(i) != str.charAt(j)) {
myList.add(charAt(i));
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是这段代码不能避免重复.
这就是我的订单表的样子:
-----------------------------------------------------------
| id | order
-----------------------------------------------------------
|1 |[{"order_quantity" : 2, "active" : TRUE, "price" : $100 }, {"order_quantity" : 4, "active" : FALSE, "price" : $200 }]
|2 |[{"order_quantity" : 2, "active" : TRUE, "price" : $170 }]
|3 |[{"order_quantity" : 2, "active" : TRUE, "price" : $120 }]
|4 |[{"order_quantity" : 2, "active" : TRUE, "price" : $150 }, {"order_quantity" : 3, "active" : TRUE, "price" : $200 }, {"order_quantity" : 5, "active" : TRUE, "price" : $200 …Run Code Online (Sandbox Code Playgroud) 我有一个带有一些整数的数组.说numbers={3,0,1}或者说numbers={9,6,4,2,3,5,7,0,1}.现在我必须找出数组中缺少的数字.根据这个例子,每组中只有一个缺失的数字.第1个错过2个,第2个错过8个.
我已经编码了.我的代码不仅从指定的集合中找出一个缺失的数字,它还可以从给定的集合中找出超过1个缺失的数字.
但如果同一组中缺少两个连续的数字,则无法找到.
My code
import java.util.Arrays;
public class Missing_number
{
public static void main( String args[] )
{
int numbers[]={9,6,4,5,7,0,1};
Arrays.sort(numbers);
int i=1;
while ( i < numbers.length )
{
if ( numbers[i] - numbers[i-1] == 1 )
{
}
else
{
System.out.println( "Missing number is " + ( numbers[i-1] + 1 ) );
}
i++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想是这样的,如果我能够在数组中追加第一个缺失的数字,然后开始搜索那么代码是什么样的?numbers={9,6,4,5,7,0,1}现在,这套已经缺少8个.现在我已从列表中终止了另外两个元素(2,3).输出:根据我的代码:2,8但是3也缺少但不显示.
我想,如果我能够在数字数组中追加2,那么它可能会更容易一些.但是我们都知道Java数组是不可变的,所以我们不能增加它的长度.
所以,也许我会使用List.但是在列表中number[0]=something不支持这种类型的索引.那么我怎么能继续呢.我使用列表还是仍然插入阵列?
所以我尝试用arraylist创建它.
Mycode(modified version from …Run Code Online (Sandbox Code Playgroud) arraylist ×10
java ×6
arrays ×2
algorithm ×1
android ×1
comparable ×1
comparator ×1
constructor ×1
for-loop ×1
generics ×1
java-17 ×1
java-ee-6 ×1
jsf ×1
jsf-2 ×1
json ×1
kotlin ×1
list ×1
loops ×1
postgresql ×1
reflection ×1
sorting ×1