如何在java中复制元素?

时间:2014-12-08 21:39:03

标签: java android arraylist

我试图从我的数组列表中复制元素然后将其传递给我的活动。同样在我的if语句中我检查gfList不等于0 java抱怨无法从GroupedFeed转换为int。如果有人知道什么是问题,并可以告诉我如何复制和过去元素到我的活动,我会很感激。提前致谢!这是我的代码:

 // I created my for loop but that did not work  
        GroupedFeed findFeed(String locateSport){ 
            if ((int) gfList != 0){
                for(int i = 0; i != gfList.size();i++){
                    if(gfList[i].category.equalsIngnoreCase(locateSport)){

                    }
                }
                return gfResult;
            }
        }

        public boolean onChildClick(ExpandableListView parent,
                android.view.View v, int groupPosition, int childPosition,
                long id) {
            switch (groupPosition){
                case 0:
                    switch (childPosition){
                        case 0:
                            // gfResult = findFeed("Men's Baseball");
                            Baseball();  // pass gfResult
                            break;
                    }
                return false;
            }

            private void Baseball() {
                Intent myIntent = new Intent(MainActivity.this, Baseball.class);
                startActivity(myIntent);
            }
        });   
        Main myMain = new Main();
        try {
            //  AssetManager aMan = getAssets();
            this.gfList = myMain.loadRSS();
        } catch (Exception e) {
            System.out.println("Hosed");
        }
    }
}

这是我的数组列表:

this   Main  (id=831962574768) 
groupedFeeds    ArrayList  (id=831963150464)    
    array   Object[12]  (id=831963153088)   
        [0] GroupedFeed  (id=831963152968)  
            category    "Women's Golf" (id=831962986192)    
            feeds   ArrayList  (id=831963152992)    
        [1] GroupedFeed  (id=831963153592)  
            category    "Volleyball" (id=831962991720)  
            feeds   ArrayList  (id=831963153616)    
        [2] GroupedFeed  (id=831963153744)  
            category    "Men's Soccer" (id=831962996544)    
            feeds   ArrayList  (id=831963153768)    
        [3] GroupedFeed  (id=831963153896)  
            category    "Women's Soccer" (id=831963006320)  
            feeds   ArrayList  (id=831963153920)    
        [4] GroupedFeed  (id=831963154864)  
            category    "Men's Golf" (id=831963016488)  
            feeds   ArrayList  (id=831963154888)    
        [5] GroupedFeed  (id=831963155072)  
            category    "Men's Cross Country" (id=831963036816) 
            feeds   ArrayList  (id=831963155096)    
        [6] GroupedFeed  (id=831963155224)  
            category    "Women's Cross Country" (id=831963041984)   
            feeds   ArrayList  (id=831963155248)    
        [7] GroupedFeed  (id=831963155472)  
            category    "Men's Bowling" (id=831963093056)   
            feeds   ArrayList  (id=831963155496)    
        [8] GroupedFeed  (id=831963155712)  
            category    "Women's Bowling" (id=831963098224) 
            feeds   ArrayList  (id=831963155736)    
        [9] GroupedFeed  (id=831963155864)  
            category    "Women's Basketball" (id=831963170720)  
            feeds   ArrayList  (id=831963155888)    
        [10]    GroupedFeed  (id=831963157504)  
            category    "Men's Basketball" (id=831963299944)    
            feeds   ArrayList  (id=831963157528)    
        [11]    null    
    modCount    11  
    size    11  
loader  RSSLoader  (id=831962575480)    
aMan    AssetManager  (id=831962469744)

4 个答案:

答案 0 :(得分:1)

您尝试使用此行将List强制转换为int:

if ((int) gfList != 0) {
    for(int i = 0; i != gfList.size();i++) {
    ...
}

gfList是一个List,不能转换为int。也许列表中的值是整数,但List本身不是int。

答案 1 :(得分:0)

gfList是一种编译器不知道如何转换为int的类型。假设检查是为了确保gfList中有某些东西,你可以尝试这样的东西(摆脱if,因为如果列表中没有任何东西,那么大小将为0而我将不会<大小为列表):

            for(int i = 0; i < gfList.size();i++){
                if(gfList[i].category.equalsIgnoreCase(locateSport)){

                }
            }
            return gfResult;

if中也有一个拼写错误,你有equalsIngnoreCase而不是equalsIgnoreCase(额外的n)。

答案 2 :(得分:0)

我想,你打算检查if(gfList.size() != 0)。你并不真的需要if语句,因为你的循环条件(它习惯于写i < gfList.size()而不是i != gfList.size(),即使它们在技术上是等价的)也会照顾它。

或者,如果你想检查gfList是否为null,那么它应该是gfList != null0null是java中两个非常不同的东西,不像&#34; C&#34;。

我不确定我理解你关于复制对象的问题。 java对象上有一个.clone()方法。那是你在找什么?

答案 3 :(得分:0)

您没有包含实例化gfList的位置,尽管它显然不是整数。我认为您的意思是致电gfList.size() != 0!gfList.isEmpty()

GroupedFeed findFeed(String locateSport){ 
    if ((!gfList.isEmpty()){
        for (int i = 0; i != gfList.size();i++){
            if (gfList.get(i).category.equalsIgnoreCase(locateSport)){
                return gfList.get(i);
            }
        }
    }
    return null;
}

然后在调用此方法时处理获取null(找不到匹配项)的可能性